CVS difference for ais/ai-00251.txt

Differences between 1.29 and version 1.30
Log of other versions for file ais/ai-00251.txt

--- ais/ai-00251.txt	2005/02/08 07:12:25	1.29
+++ ais/ai-00251.txt	2005/04/13 05:37:01	1.30
@@ -1,4 +1,4 @@
-!standard 03.04    (02)                            04-12-29   AI95-00251/18
+!standard 03.04    (02)                            05-02-25   AI95-00251/19
 !standard 02.09    (02)
 !standard 03.02.01 (02)
 !standard 03.04    (03)
@@ -241,7 +241,7 @@
 Replace the last sentence of paragraph 10 with:
 
     An *ultimate ancestor* of a type is an ancestor of that type that
-    is not itself a descendant of any other type. Each untagged type has a
+    is not itself a descendant of any other type. Every untagged type has a
     unique ultimate ancestor.
 
 
@@ -261,8 +261,8 @@
     (This section is entirely new.)
 
         An interface type is an abstract tagged type that provides a restricted
-	form of multiple inheritance. A tagged type have one or more interface
-        types as ancestors.
+	form of multiple inheritance. A tagged type, task type, or protected
+        type may have one or more interface types as ancestors.
 
                                  Syntax
 
@@ -539,7 +539,7 @@
                                            [[AND interface_list] WITH PRIVATE]
 
 
-    Add after paragraph 15:
+    Add after paragraph 5:
 
         The actual type for a generic formal derived type shall be a descendant
         of every ancestor of the formal type.
@@ -1061,7 +1061,7 @@
 are defined to be descendants of the root types of their classes. If a type
 @i<T2> is a descendant of a type @i<T1>, then @i<T1> is called an @i<ancestor>
 of @i<T2>. An @i<ultimate ancestor> of a type is an ancestor of that type that
-is not itself a descendant of any other type. Each untagged type has a unique
+is not itself a descendant of any other type. Every untagged type has a unique
 ultimate ancestor.
 
 !corrigendum 3.9.3(04)
@@ -1086,8 +1086,8 @@
 
 @dinsc
 An interface type is an abstract tagged type that provides a restricted
-form of multiple inheritance. A tagged type have
-one or more interface types as ancestors.
+form of multiple inheritance. A tagged type, task type, or protected type
+may have one or more interface types as ancestors.
 
 @i<@s8<Syntax>>
 
@@ -1417,11 +1417,16 @@
 @xcode<@fa<formal_derived_type_definition ::=
      [>@ft<@b<abstract>>@fa<] >@ft<@b<new>>@fa< subtype_mark [[>@ft<@b<and>>@fa< interface_list] >@ft<@b<with private>>@fa<]>>
 
-!corrigendum 12.5.1(15)
+!corrigendum 12.5.1(05)
 
 @dinsa
-For a generic formal type with an @fa<unknown_discriminant_part>, the actual
-may, but need not, have discriminants, and may be definite or indefinite.
+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 @fa<abstract> shall
+appear only if the ancestor type is a tagged type.
 @dinst
 The actual type for a generic formal derived type shall be a descendant of
 every ancestor of the formal type.

Questions? Ask the ACAA Technical Agent