CVS difference for ais/ai-00419.txt

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

--- ais/ai-00419.txt	2005/05/05 02:43:02	1.4
+++ ais/ai-00419.txt	2005/06/16 23:47:43	1.5
@@ -1,8 +1,10 @@
-!standard 3.4(01)                                   05-04-16  AI95-00419-01/03
+!standard 3.4(01)                                   05-05-05  AI95-00419-01/04
 !standard 3.4(02)
 !standard 3.4(03)
 !standard 3.4(05)
 !standard 3.4(15)
+!standard 3.7(10)
+!standard 3.9.1(03)
 !standard 3.9.4(01)
 !standard 7.3(02)
 !standard 7.3(06)
@@ -16,7 +18,7 @@
 !standard 12.5.1(03)
 !class amendment 05-03-09
 !status Amendment 200Y 05-03-10
-!comment This AI is in the Amendment, but is not yet approved.
+!status ARG Approved 11-0-0  05-04-16
 !status work item 05-03-09
 !status received 05-03-09
 !priority High
@@ -105,7 +107,7 @@
 
 Change 3.4(1) as amended by AI95-00401 to read:
 
-    A derived_type_definition defines a new {*derived} type{*} (and its
+    A derived_type_definition defines a {*derived} type{*} (and its
     first subtype) whose characteristics are derived from those of a
     parent type, and possibly from progenitor types.
 
@@ -145,12 +147,30 @@
 
 interface_list ::= interface_subtype_mark {and interface_subtype_mark}
 
+Change 3.7(10) (using the terminology introduced by AI-318-2):
+
+A discriminant_specification for an access discriminant shall appear only
+in the declaration for a task or protected type, or for a type {that is
+a descendamt of an explicitly limited record type} [with the
+reserved word limited in its [(full)] definition
+or in that of one of its ancestors].
+
+
+Change 3.9.1(3):
+
+... If the [parent type]{record extension} is nonlimited, ...
+
+
 Add the following at the end of the Static Semantics of the new subclause 3.9.4:
 
 An interface_subtype_mark in an interface_list names a
 *progenitor subtype*; its type is the *progenitor type*.
+An interface type inherits user-defined primitive subprograms from each
+progenitor type in the same way that a derived type inherits user-defined
+primitive subprograms from its progenitor types (see 3.4).
 
 
+
 Change 7.3(3) as amended by AI95-0251 to read:
 
 private_extension_declaration ::=
@@ -268,7 +288,7 @@
 A @fa<derived_type_definition> defines a new type (and its first subtype) whose
 characteristics are @i<derived> from those of a @i<parent type>.
 @dby
-A @fa<derived_type_definition> defines a new @i<derived type> (and its
+A @fa<derived_type_definition> defines a @i<derived type> (and its
 first subtype) whose characteristics are derived from those of a
 parent type, and possibly from progenitor types.
 
@@ -285,12 +305,13 @@
 !corrigendum 3.4(03)
 
 @drepl
-The @i<parent>@fa<_subtype_indication> defines the @i<parent subtype>; its type
+The @i<parent_>@fa<subtype_indication> defines the @i<parent subtype>; its type
 is the parent type.
 @dby
-The @i<parent>@fa<_subtype_indication> defines @i<the parent subtype>; its type
+The @i<parent_>@fa<subtype_indication> defines @i<the parent subtype>; its type
 is the @i<parent type>. The @fa<interface_list> defines the progenitor types
-(see 3.9.4). A derived type has one parent type and zero or more progenitor types.
+(see 3.9.4). A derived type has one parent type and zero or more progenitor
+types.
 
 !corrigendum 3.4(05)
 
@@ -308,9 +329,42 @@
 @ddel
 @xbullet<The derived type is limited if and only if the parent type is limited.>
 
+!corrigendum 3.7(10)
+
+@drepl
+A @fa<discriminant_specification> for an access discriminant shall appear only
+in the declaration for a task or protected type, or for a type with the
+reserved word @b<limited> in its (full) definition or in that of one of its
+ancestors. In addition to the places where Legality Rules normally apply (see
+12.3), this rule applies also in the private part of an instance of a generic
+unit.
+@dby
+A @fa<discriminant_specification> for an access discriminant shall appear only
+in the declaration for a task or protected type, or for a type that is a
+descendant of an explicitly limited record type. In addition to the places
+where Legality Rules normally apply (see 12.3), this rule applies also in the
+private part of an instance of a generic unit.
+
+
+!corrigendum 3.9.1(03)
+
+@drepl
+The parent type of a record extension shall not be a class-wide type. If the
+parent type is nonlimited, then each of the components of the
+@fa<record_extension_part> shall be nonlimited. The accessibility level (see 3.10.2)
+of a record extension shall not be statically deeper than that of its parent
+type. In addition to the places where Legality Rules normally apply (see 12.3),
+these rules apply also in the private part of an instance of a generic unit.
+@dby
+The parent type of a record extension shall not be a class-wide type. If the
+record extension is nonlimited, then each of the components of the
+@fa<record_extension_part> shall be nonlimited. The accessibility level (see 3.10.2)
+of a record extension shall not be statically deeper than that of its parent
+type. In addition to the places where Legality Rules normally apply (see 12.3),
+these rules apply also in the private part of an instance of a generic unit.
 
 !corrigendum 3.9.4(01)
-!Dummy to cause a conflict.
+!comment Dummy to cause a conflict.
 
 @drepl
 @xcode<@fa<interface_list ::= >@ft<@i<interface_>>@fa<subtype_mark {>@ft<@b<and>>@fa< >@ft<@i<interface_>>@fa<subtype_mark}>>

Questions? Ask the ACAA Technical Agent