CVS difference for ais/ai-00419.txt

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

--- ais/ai-00419.txt	2005/03/10 01:22:56	1.1
+++ ais/ai-00419.txt	2005/03/11 21:49:49	1.2
@@ -1,5 +1,7 @@
-!standard 3.4(2)                                    05-03-09  AI95-00419-01/01
+!standard 3.4(2)                                    05-03-11  AI95-00419-01/02
 !class amendment 05-03-09
+!status Amendment 200Y 05-03-10
+!comment This AI is in the Amendment, but is not yet approved.
 !status work item 05-03-09
 !status received 05-03-09
 !priority High
@@ -106,8 +108,8 @@
 
 Change 3.4(15) to read:
 
-o  The derived type is limited if the parent is a limited type that is not an
-   interface type, or if the reserved word *limited* appears.
+o  Redundant[The derived type is limited if the parent is a limited type that
+   is not an interface type, or if the reserved word *limited* appears.]
 
   AARM Reason: We considered a rule where limitedness was always inherited from
   the parent, but in the case of a type whose parent is an interface, this
@@ -139,25 +141,48 @@
      [and interface_list] with private;
 
 
+Change the first sentence of 7.3(6) to read:
+
+Redundant[A private type is limited if its declaration includes the reserved
+word *limited*; a private extension is limited if its ancestor type is a
+limited type that is not an interface type, or if the reserved word *limited*
+appears in its definition.] If the partial view is nonlimited, then the full
+view shall be nonlimited.
+
+
 Add after 7.3(8):
 
 If the reserved word *limited* appears in a private_extension_declaration, the
-ancestor type shall be a limited type. A private extension is limited if the
-ancestor type is a limited type that is not an interface type, or if the
-reserved word *limited* appears.
+ancestor type shall be a limited type.
 
-Change 12.5.1(3) as amended by AI95-00251 to read:
+Add after 7.3(10):
 
-formal_derived_type_definition ::=
-     [abstract] [limited] new subtype_mark [[and interface_list] with private]
+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.
+
+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
+too confusing for the reader.
+
+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.
 
-Add after 12.5.1(5):
 
-If the reserved word *limited* appears in a formal_derived_type_definition, the
-ancestor type shall be a limited type. A generic formal derived type is limited
-if the ancestor type is a limited type that is not an interface type, of if the
-reserved word *limited* appears.
+Change 7.5(4) to read:
+
+o a type which is not an interface type and has the reserved word *limited* in
+its definition;
+
+
+Change 12.5.1(3) as amended by AI95-00251 to read:
+
+formal_derived_type_definition ::=
+     [abstract] [limited] new subtype_mark [[and interface_list] with private]
 
 
 !discussion

Questions? Ask the ACAA Technical Agent