CVS difference for ais/ai-00230.txt
--- ais/ai-00230.txt 2005/01/07 03:07:28 1.21
+++ ais/ai-00230.txt 2005/02/08 07:12:21 1.22
@@ -1,4 +1,7 @@
-!standard 03.04.01(06) 04-12-09 AI95-00230/14
+!standard 03.04.01(06) 05-01-31 AI95-00230/15
+!standard 03.02.01(07)
+!standard 03.02.01(08)
+!standard 03.04.01(10)
!standard 03.06(07)
!standard 03.06(22/1)
!standard 03.07(10)
@@ -151,6 +154,15 @@
!wording
+Delete "(including a parameter or a discriminant)" from 3.2.1(7).
+
+Change 3.2.1(8) as follows:
+
+ A named type that is declared by a @fa<full_type_declaration>,
+ or an anonymous type that is defined as part of declaring
+ an object {(or view of an object)} of the type, is called a
+ *full type*. ...
+
Change 3.4.1(6) as follows:
Universal Types
@@ -158,7 +170,17 @@
fixed point{, and access} classes, and are referred to in this standard
as respectively, universal_integer, universal_real, [and]
universal_fixed{, and universal_access}. These are analogous to
- class-wide types for these language-defined [numeric] classes. ...
+ class-wide types for these language-defined {elementary}[numeric] classes.
+ As with class-wide types, if a formal parameter is of a universal type,
+ then an actual parameter of any type in the corresponding
+ class is acceptable. In addition, a value of a universal type (including
+ an integer or real numeric_literal{, or the literal @b<null>}) is
+ ``universal'' in that it is acceptable where some particular type in the
+ class is expected (see 8.6).
+
+Change 3.4.1(10) as follows:
+ ... Similarly, the {numeric} universal types are defined to be
+ descendants of the root types of their classes. ...
Change 3.6(7) as follows:
@@ -522,6 +544,58 @@
they seemed to create more problems than they solved, and are not needed
if we allow anonymous access types in component declarations.
+!corrigendum 3.2.1(7)
+
+@drepl
+A type defined by a @fa<type_declaration> is a @i<named> type;
+such a type has one or more nameable subtypes.
+Certain other forms of declaration also include type
+definitions as part of the declaration for an object (including a
+parameter or a discriminant). The type defined by such
+a declaration is @i<anonymous> - it has no nameable subtypes.
+For explanatory purposes, this International Standard sometimes refers to
+an anonymous type by a pseudo-name, written in italics, and
+uses such pseudo-names at places where the syntax normally requires
+an @fa<identifier>. For a named type whose first subtype is T,
+this International Standard sometimes refers to the type of T
+as simply "the type T."
+@dby
+A type defined by a @fa<type_declaration> is a @i<named> type;
+such a type has one or more nameable subtypes.
+Certain other forms of declaration also include type
+definitions as part of the declaration for an object. The type defined
+by such a declaration is @i<anonymous> - it has no nameable subtypes.
+For explanatory purposes, this International Standard sometimes refers to
+an anonymous type by a pseudo-name, written in italics, and
+uses such pseudo-names at places where the syntax normally requires
+an @fa<identifier>. For a named type whose first subtype is T,
+this International Standard sometimes refers to the type of T
+as simply "the type T."
+
+!corrigendum 3.2.1(8)
+
+@drepl
+A named type that is declared by a @fa<full_type_declaration>,
+or an anonymous type that is defined as part of declaring
+an object of the type, is called a @i<full type>.
+The @fa<type_definition>, @fa<task_definition>, @fa<protected_definition>,
+or @fa<access_definition> that defines a full type is called
+a @i<full type definition>.
+Types declared by other forms of @fa<type_declaration> are
+not separate types; they are partial or incomplete views
+of some full type.
+@dby
+A named type that is declared by a @fa<full_type_declaration>,
+or an anonymous type that is defined as part of declaring
+an object (or view of an object) of the type, is called a
+@i<full type>.
+The @fa<type_definition>, @fa<task_definition>, @fa<protected_definition>,
+or @fa<access_definition> that defines a full type is called
+a @i<full type definition>.
+Types declared by other forms of @fa<type_declaration> are
+not separate types; they are partial or incomplete views
+of some full type.
+
!corrigendum 3.4.1(6)
@drepl
@@ -541,11 +615,35 @@
and access classes, and are referred to in this standard as respectively,
@i<universal_integer>, @i<universal_real>, @i<universal_fixed>, and
@i<universal_access>. These are analogous to class-wide types for these
-language-defined classes. As with class-wide types, if a formal parameter is of
-a universal type, then an actual parameter of any type in the corresponding
+language-defined elementary classes. As with class-wide types, if a formal
+parameter is of a universal type, then an actual parameter of any type in the
+corresponding
class is acceptable. In addition, a value of a universal type (including an
-integer or real @fa<numeric_literal>) is ``universal'' in that it is acceptable
-where some particular type in the class is expected (see 8.6).>
+integer or real @fa<numeric_literal>, or the literal @b<null>) is ``universal''
+in that it is acceptable where some particular type in the class is
+expected (see 8.6).>
+
+!corrigendum 3.4.1(10)
+
+@drepl
+A specific type @i<T2> is defined to be a @i<descendant> of a type @i<T1> if
+@i<T2> is the same as @i<T1>, or if @i<T2> is derived (directly or indirectly)
+from @i<T1>. A class-wide type @i<T2>'Class is defined to be a descendant of
+type @i<T1> if @i<T2> is a descendant of @i<T1>. Similarly, the universal types
+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>. The @i<ultimate ancestor> of a type is the ancestor of the type that
+is not a descendant of any other type.
+@dby
+A specific type @i<T2> is defined to be a @i<descendant> of a type @i<T1> if
+@i<T2> is the same as @i<T1>, or if @i<T2> is derived (directly or indirectly)
+from @i<T1>. A class-wide type @i<T2>'Class is defined to be a descendant of
+type @i<T1> if @i<T2> is a descendant of @i<T1>. Similarly, the numeric
+universal types 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>. The @i<ultimate ancestor> of a type is the
+ancestor of the type that is not a descendant of any other type.
+
!corrigendum 3.6(7)
@@ -604,7 +702,7 @@
by evaluation of its @fa<default_expresssion> or by elaboration of a
@fa<discriminant_constraint>. For an access discriminant of a nonlimited
type, its @fa<access_definition> is elaborated when the
-@nt{full_type_declaration> with the @fa<known_discriminant_part> is elaborated.
+@fa<full_type_declaration> with the @fa<known_discriminant_part> is elaborated.
The elaboration of an @fa<access_definition> creates the anonymous access
type. When the expression defining the access discriminant is evaluated, it is
converted to this anonymous access type (see 4.6).
Questions? Ask the ACAA Technical Agent