To: J3 J3/22-175 From: John Reid Subject: Remote polymorphic subobjects Date: 2022-July-19 References: 22-007r1 Discussion ---------- Existing constraints suggest an implementation would never need to query the dynamic type of an object on another image. R911 is "R911 data-ref is part-ref [ % part-ref ] ..." C917 states C917 (R911) Except as an actual argument to an intrinsic inquiry function or as the designator in a type parameter inquiry, a data-ref shall not be a coindexed object that has a polymorphic allocatable potential subobject component." and C1528 states C1528 (R1522) A data-ref shall not be a polymorphic subobject of a coindexed object. C918 says C918 Except as an actual argument to an intrinsic inquiry function or as the designator in a type parameter inquiry, if the rightmost part-ref is polymorphic, no other part-ref shall be coindexed. The list of intrinsic inquiry functions includes SAME_TYPE_AS and EXTENDS_TYPE_OF, so those intrinsics should be excluded in constraints C917 and C918 to avoid a requirement of knowing the dynamic type on a remote image. Edits to 22-007r1: [133:13, 9.4.2 Structure components, Constraint C917] After "intrinsic inquiry function", add "other than SAME_TYPE_AS, EXTENDS_TYPE_OF, ", leading to the whole constraint reading "Except as an actual argument to an intrinsic inquiry function other than SAME_TYPE_AS, EXTENDS_TYPE_OF, or as the designator in a type parameter inquiry, a data-ref shall not be a coindexed object that has a polymorphic allocatable potential subobject component." [133:16, 9.4.2 Structure components, Constraint C918] After "intrinsic inquiry function", add "other than SAME_TYPE_AS, EXTENDS_TYPE_OF, " leading to the whole constraint reading "Except as an actual argument to an intrinsic inquiry function other than SAME_TYPE_AS, or EXTENDS_TYPE_OF, or as the designator in a type parameter inquiry, if the rightmost part-ref is polymorphic, no other part-ref shall be coindexed.