CVS difference for ais/ai-00419.txt

Differences between 1.6 and version 1.7
Log of other versions for file ais/ai-00419.txt

--- ais/ai-00419.txt	2005/08/05 04:38:21	1.6
+++ ais/ai-00419.txt	2005/08/21 06:00:40	1.7
@@ -1,4 +1,4 @@
-!standard 3.4(01)                                   05-07-12  AI95-00419-01/05
+!standard 3.4(01)                                   05-08-08  AI95-00419-01/06
 !standard 3.4(02)
 !standard 3.4(03)
 !standard 3.4(05)
@@ -16,6 +16,7 @@
 !standard 9.1(9.1)
 !standard 9.4(11)
 !standard 12.5.1(03)
+!standard 12.5.1(05)
 !class amendment 05-03-09
 !status Amendment 200Y 05-03-10
 !status ARG Approved 11-0-0  05-04-16
@@ -194,9 +195,10 @@
 
 Add after 7.3(10):
 
-If the full view of a private extension is limited, then the reserved word
-*limited* shall appear in the full_type_declaration if and only if it also
-appears in the private_extension_declaration.
+If the full_type_declaration for a private extension is a
+derived_type_declaration, then the reserved word *limited* shall appear in
+the full_type_declaration if and only if it also appears in the
+private_extension_declaration.
 
 AARM Reason: The word *limited* is optional (unless the ancestor is an
 interface), but if you use it, do so consistently.  Otherwise things would be
@@ -205,9 +207,9 @@
 Change 7.5(2) to read:
 
 If a tagged record type has any limited components, then the reserved word
-*limited* shall appear in its record_type_definition. If the reserved word
-*limited* appears in the definition of a type extension, its parent type
-Redundant[and any progenitor interfaces] shall be limited.
+*limited* shall appear in its record_type_definition. Redundant[If the reserved
+word *limited* appears in the definition of a derived_type_definition, its
+parent type and any progenitor interfaces shall be limited.]
 
 
 Change 7.5(3-6) to read: (This includes the change of AI-411):
@@ -272,7 +274,11 @@
 formal_derived_type_definition ::=
      [abstract] [limited] new subtype_mark [[and interface_list] with private]
 
+Add at the end of 12.5.1(5):
 
+    Finally, the reserved word limited shall appear only if the
+    ancestor type and any progenitor types are limited types.
+
 !discussion
 
 (See proposal.)
@@ -427,10 +433,10 @@
 subtype, and the parent subtype of the full view shall be constrained if and
 only if the ancestor subtype is constrained.
 @dinst
-If the full view of a private extension is limited, then the reserved word
-@b<limited> shall appear in the @fa<full_type_declaration> if and only if it
-also appears in the @fa<private_extension_declaration>.
-
+If the @fa<full_type_declaration> for a private extension is a
+@fa<derived_type_declaration>, then the reserved word @b<limited> shall appear
+in the @fa<full_type_declaration> if and only if it also appears in the
+@fa<private_extension_declaration>.
 
 !corrigendum 7.5(02)
 
@@ -439,8 +445,8 @@
 @dby
 If a tagged record type has any limited components, then the reserved word
 @b<limited> shall appear in its @fa<record_type_definition>. If the reserved
-word @b<limited> appears in the definition of a type extension, its parent type
-and any progenitor interfaces shall be limited.
+word @b<limited> appears in the definition of a @fa<derived_type_definition>,
+its parent type and any progenitor interfaces shall be limited.
 
 
 !corrigendum 7.5(03)
@@ -494,6 +500,25 @@
 @dby
 @xcode<@fa<formal_derived_type_definition ::=
      [>@ft<@b<abstract>>@fa<] [>@ft<@b<limited>>@fa<] >@ft<@b<new>>@fa< subtype_mark [[>@ft<@b<and>>@fa< interface_list] >@ft<@b<with private>>@fa<]>>
+
+!corrigendum 12.5.1(05)
+
+@drepl
+The @i<ancestor subtype> of a formal derived type is the subtype denoted by the
+@fa<subtype_mark> of the @fa<formal_derived_type_definition>. For a formal
+derived type declaration, the reserved words @b<with private> shall appear if
+and only if the ancestor type is a tagged type; in this case the formal derived
+type is a private extension of the ancestor type and the ancestor shall not be
+a class-wide type. Similarly, the optional reserved word @b<abstract> shall
+appear only if the ancestor type is a tagged type.
+@dby
+The @i<ancestor subtype> of a formal derived type is the subtype denoted by the
+@fa<subtype_mark> of the @fa<formal_derived_type_definition>. For a formal
+derived type declaration, the reserved words @b<with private> shall appear if
+and only if the ancestor type is a tagged type; in this case the formal derived
+type is a private extension of the ancestor type and the ancestor shall not be
+a class-wide type. Finally, the reserved word @b<limited> shall appear only if
+the ancestor type and any progenitor types are limited types.
 
 
 !ACATS test

Questions? Ask the ACAA Technical Agent