CVS difference for ai12s/ai12-0065-1.txt
--- ai12s/ai12-0065-1.txt 2013/12/18 04:08:44 1.4
+++ ai12s/ai12-0065-1.txt 2014/01/05 04:25:25 1.5
@@ -1,10 +1,12 @@
-!standard 7.3.1(5.2/3) 13-11-16 AI12-0065-1/01
-!class binding interpretation 13-05-08
+!standard 7.3.1(5.2/3) 13-12-17 AI12-0065-1/02
+!class ramification 13-12-17
+!status Corrigendum 2014 13-12-17
+!status ARG Approved 6-0-5 13-11-17
!status work item 13-05-08
!status received 13-01-26
!priority Low
!difficulty Medium
-!qualifier Omission
+!qualifier Clarification
!subject Descendants of incomplete views
!summary
@@ -23,16 +25,22 @@
Should this be clarified? (Yes.)
-!recommendation
+!response
-(See !summary.)
+Paragraph 7.3.1(5.2/3) was intended to be a clarification of 7.3.1(5.1/3), but
+its wording was sufficiently confusing that it only made matters worse. We
+have tried to clarify the intent a bit.
+Also, the AARM example was similarly intended to clarify things, but the
+mapping between the example and 5.2/3 was not clear, so again, things
+only became further muddled. Hopefully the added comments have helped
+explain how the example relates to 5.2/3.
+
!wording
-** TBD.
Modify 7.3.1(5.2/3, 5.a.*/3) as follows:
- [redundant: [It]{Furthermore, it is possible for there to be places
+ [redundant: [It]{Furthermore, it} is possible for there to be places
where a derived type is [visibly a descendant of] {known to be
derived indirectly from} an ancestor type, but is not a descendant of
even a partial view of the ancestor type, because the parent of the
@@ -77,18 +85,33 @@
Z : T3 := T3(Integer(W) + 1); -- Legal: convert to Integer first
end P.Child;
-----
-
!discussion
-Paragraph 7.3.1(5.2/3) was intended to be a clarification of 7.3.1(5.1/3), but
-its wording was sufficiently confusing that it only made matters worse. We
-have tried to clarify the intent a bit.
+None needed.
-Also, the AARM example was similarly intended to clarify things, but the
-mapping between the example and 5.2/3 was not clear, so again, things
-only became further muddled. Hopefully the added comments have helped
-explain how the example relates to 5.2/3.
+!corrigendum 7.3.1(5.2/3)
+
+@drepl
+It is possible for there to be places where a derived
+type is visibly a descendant of an ancestor type, but not a
+descendant of even a partial view of the ancestor type, because the parent
+of the derived type is not visibly a descendant of the ancestor. In
+this case, the derived type inherits no characteristics from that
+ancestor, but nevertheless is within the derivation class of the
+ancestor for the purposes of type conversion, the "covers"
+relationship, and matching against a formal derived type. In this
+case the derived type is considered to be a @i<descendant> of an
+incomplete view of the ancestor.
+@dby
+Furthermore, it is possible for there to be places where a derived type is
+known to be derived indirectly from an ancestor type, but is not a descendant
+of even a partial view of the ancestor type, because the parent of the
+derived type is not visibly a descendant of the ancestor. In this
+case, the derived type inherits no characteristics from that
+ancestor, but nevertheless is within the derivation class of the
+ancestor for the purposes of type conversion, the "covers" relationship, and
+matching against a formal derived type. In this case the derived type is
+effectively a @i<descendant> of an incomplete view of the ancestor.
!ACATS Test
Questions? Ask the ACAA Technical Agent