Skip to content

Commit f861561

Browse files
authored
Merge pull request #153 from everythingfunctional-nasa/main
Changes from subgroup 2025-05-12
2 parents cd73fcd + d241722 commit f861561

File tree

1 file changed

+25
-5
lines changed

1 file changed

+25
-5
lines changed

J3-Papers/edits/25-112_misc.txt

Lines changed: 25 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -537,18 +537,38 @@ this point.
537537

538538
[317:10+] Insert new paragraphs to address deferred arguments:
539539

540-
"An entity with a kind-type parameter whose value depends on a
541-
deferred argument is only TKR compatible with another entity,
542-
if that entity has the same kind-type parameter declared with
540+
"A kind-type parameter whose value depends on a deferred argument
541+
is only the same as another kind-type parameter declared with
543542
a syntactically equivalent expression.
544543

545-
An entity whose rank depends on a deferred argument is only TKR
546-
compatible with another entity, if that entity has its rank
544+
An entity whose rank depends on a deferred argument only has
545+
the same rank as another entity if that entity has its rank
547546
declared with a syntactically equivalent expression. If the rank
548547
of an implied-rank entity is not declared with a rank clause, it
549548
does not have the same rank as any other entity."
550549

550+
551551
{ Is "depends on" acceptable terminology here? }
552+
{ UTI: We should define "syntactically equivalent" }
553+
{ UTI: Prevent specifying rank and bounds for deferred constants I.e.
554+
555+
DEFERRED INTEGER, PARAMTER :: C(*)
556+
DEFERRED INTEGER, PARAMETER, RANK(SIZE(C)) :: D(C)
557+
558+
REQUIREMENT R(C, F)
559+
DEFERRED INTEGER, PARAMETER :: C
560+
DEFERRED INTERFACE
561+
INTEGER FUNCTION F(X)
562+
INTEGER, RANK(C+1) :: X
563+
END FUNCTION
564+
END REQUIREMENT
565+
DEFERRED INTEGER, PARAMETER :: A
566+
DEFERRED INTEGER, PARAMETER, RANK(A) :: B
567+
REQUIRES R(A, F)
568+
...
569+
PRINT *, F(B) ! Should be compile time error
570+
}
571+
552572

553573
NOTE Some examples of implied-rank entities are shown in the
554574
following example template. C is explicitly declared

0 commit comments

Comments
 (0)