CVS difference for ais/ai-00443.txt

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

--- ais/ai-00443.txt	2006/01/10 22:17:52	1.1
+++ ais/ai-00443.txt	2006/02/21 04:21:56	1.2
@@ -1,7 +1,7 @@
 !standard 3.9.4(1)                                     05-12-14  AI95-00443/01
 !standard 7.3(3)
 !standard 7.3(6)
-!standard 7.3(8.1)
+!standard 7.3(8)
 !standard 12.5.1(3)
 !standard 12.5.1(5)
 !standard 12.5.1(5.1)
@@ -77,7 +77,7 @@
 	hand, if an untagged partial view is limited, the full view may be
 	limited or nonlimited.
 
-Modify 7.3(8.1) as follows:
+Modify the paragraph added after 7.3(8) by AI-419 as follows:
 
 	If the reserved word limited appears in a
 	private_extension_declaration, the ancestor type shall be a limited
@@ -107,7 +107,8 @@
      synchronized shall appear (rather than limited) if the ancestor
      type or any of the progenitor types are synchronized interfaces.}
 
-Modify 12.5.1(5.1) as follows:
+Modify the paragraph added after 12.5.1(5) by AI-251 and modified by AI-401
+as follows:
 
      The actual type for a [generic] formal derived type shall be a
      descendant of {Redundant[the ancestor type] and} every progenitor
@@ -199,7 +200,7 @@
 the use of an explicit "synchronized" instead of "limited" in
 front of "new."
 
-Thus we solve both problems identified abovev by saying that a private
+Thus we solve both problems identified above by saying that a private
 extension does *not* inherit either limitedness or synchronizedness from
 its interface ancestors, but instead, either of these must be specified
 explicitly if you want them (and you surely *do* if you have any
@@ -304,8 +305,86 @@
 form of multiple inheritance. A tagged, task, or protected type may have
 one or more interface types as ancestors.
 
-
-!comment Rest of !corrigendum is TBD!!!
+!corrigendum 7.3(3)
+@drepl
+@xcode<@fa<private_extension_declaration ::=
+   >@ft<@b<type>>@fa< defining_identifier [discriminant_part] >@ft<@b<is>>@fa<
+     [>@ft<@b<abstract>>@fa<] >@ft<@b<new>>@fa< ancestor_subtype_indication >@ft<@b<with private>>@fa<;>>
+@dby
+@xcode<@fa<private_extension_declaration ::=
+   >@ft<@b<type>>@fa< defining_identifier [discriminant_part] >@ft<@b<is>>@fa<
+     [>@ft<@b<abstract>>@fa<] [>@ft<@b<limited>>@fa< | >@ft<@b<synchronized>>@fa<] >@ft<@b<new>>@fa< ancestor_subtype_indication
+     [>@ft<@b<and>>@fa< interface_list] >@ft<@b<with private>>@fa<;>>
+
+!corrigendum 7.3(6)
+
+@drepl
+A private type is limited if its declaration includes the reserved word
+@b<limited>; a private extension is limited if its ancestor type is limited. If
+the partial view is nonlimited, then the full view shall be nonlimited. If a
+tagged partial view is limited, then the full view shall be limited. On the
+other hand, if an untagged partial view is limited, the full view may be
+limited or nonlimited.
+@dby
+A private type is limited if its declaration includes the reserved word
+@b<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 @b<limited> or
+@b<synchronized> appears in its definition. If the partial view is nonlimited,
+then the full view shall be nonlimited. If a tagged partial view is limited,
+then the full view shall be limited. On the other hand, if an untagged partial
+view is limited, the full view may be limited or nonlimited.
+
+!corrigendum 7.3(8)
+
+@dinsa
+The @i<ancestor subtype> of a @fa<private_extension_declaration> is the subtype
+defined by the @fa<ancestor_subtype_indication>; the ancestor type shall be a
+specific tagged type. The full view of a private extension shall be derived
+(directly or indirectly) from the ancestor type. In addition to the places
+where Legality Rules normally apply (see 12.3), the requirement that the
+ancestor be specific applies also in the private part of an instance of a
+generic unit.
+@dinst
+If the reserved word @b<limited> appears in a
+@fa<private_extension_declaration>, the ancestor type shall be a limited type.
+If the reserved word @b<synchronized> appears in a
+@fa<private_extension_declaration>, the ancestor type shall be a limited
+interface.
+
+!corrigendum 12.5.1(3)
+@drepl
+@xcode<@fa<formal_derived_type_definition ::= [>@ft<@b<abstract>>@fa<] >@ft<@b<new>>@fa< subtype_mark [>@ft<@b<with private>>@fa<]>>
+@dby
+@xcode<@fa<formal_derived_type_definition ::=
+     [>@ft<@b<abstract>>@fa<] [>@ft<@b<limited>>@fa< | >@ft<@b<synchronized>>@fa<] >@ft<@b<new>>@fa< subtype_mark [[>@ft<@b<and>>@fa< interface_list] >@ft<@b<with private>>@fa<]>>
+
+!corrigendum 12.5.1(5)
+@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. Similarly, an @fa<interface_list> or the optional reserved
+words @b<abstract> or @b<synchronized> shall appear only if the ancestor type
+is a tagged type. The reserved word @b<limited> or @b<synchronized> shall
+appear only if the ancestor type and any progenitor types are limited types.
+The reserved word @b<synchronized> shall appear (rather than @b<limited>) if
+the ancestor type or any of the progenitor types are synchronized interfaces.
+
+The actual type for a formal derived type shall be a
+descendant of the ancestor type and every progenitor
+of the formal type. If the reserved word @b<synchronized> appears
+in the declaration of the formal derived type, the actual
+type shall be a synchronized tagged type.
 
 !ACATS test
 

Questions? Ask the ACAA Technical Agent