CVS difference for ais/ai-00231.txt

Differences between 1.19 and version 1.20
Log of other versions for file ais/ai-00231.txt

--- ais/ai-00231.txt	2005/01/07 03:07:28	1.19
+++ ais/ai-00231.txt	2005/02/08 07:12:22	1.20
@@ -1,4 +1,6 @@
 !standard  3.10      (06)                        04-12-13  AI95-00231/13
+!standard  3.2       (07)
+!standard  3.2       (08)
 !standard  3.2.2     (03)
 !standard  3.2.2     (05)
 !standard  3.7       (05)
@@ -9,6 +11,7 @@
 !standard  3.10      (14/1)
 !standard  3.10      (15)
 !standard  4.2       (07)
+!standard  4.5.2     (30)
 !standard  4.6       (49)
 !standard  4.6       (51)
 !standard  4.9.1     (02)
@@ -18,6 +21,7 @@
 !standard  6.1       (24)
 !standard  6.4       (12)
 !standard  8.5.1     (04)
+!standard  8.6       (20)
 !standard  8.6       (25)
 !standard  11.5      (11/1)
 !standard  12.5.1    (10)
@@ -61,6 +65,16 @@
 
 !wording
 
+Add to 3.2(7):
+
+The set of possible values for an object of an access type can also be subject
+to a condition that is called a null exclusion (see 3.10).
+
+Add to the penultimate sentence of 3.2(8):
+
+...of the values of its type that satisfy its constraint {and, in the case of a
+subtype of an access type, any applicable null exclusion}.
+
 Replace paragraph 3.2.2(3) with:
     subtype_indication ::=
       [null_exclusion] subtype_mark [constraint]
@@ -113,9 +127,10 @@
 
 Modify 3.10(13) as follows:
    For each [(named)] access type, there is [a literal null which has] a null
-   access value designating no entity at all.  The null value of [a named] {an}
-   access type is the ... in the case of [a named] {an} access-to-object type,
-   an allocator, which returns ...
+   access value designating no entity at all{, which can be obtained by
+   converting the literal null to the access type}. The null value of
+   [a named] {an} access type is the ... in the case of [a named] {an}
+   access-to-object type, an allocator, which returns ...
 
    Also, make the editorial correction of swapping "a non-intrinsic subprogram"
    and "an aliased view of an object" in order to get the subprogram away from
@@ -147,6 +162,17 @@
 Delete paragraph 4.2(7) which says that anonymous access types don't
 have a null value.
 
+Replace 4.5.2(30) with:
+
+  The tested type is not scalar, and the value of the simple_expression
+  satisfies any constraints of the named subtype, and:
+
+   *   if the type of the simple_expression is class-wide, the value has a tag
+       that identifies a type covered by the tested type.
+
+   *   if the tested type is an access type and the named subtype excludes
+       null, the value of the simple_expression is not null.
+
 Replace 4.6(49) with:
     If the operand value is null, the result of the conversion is the null
     value of the target type.
@@ -198,6 +224,9 @@
     the renamed entity shall be of an access-to-constant type if and
     only if the access_definition defines an access-to-constant type.
 
+Modify 8.6(20):
+   .. universal [numeric] literals...
+
 Modify 8.6(25):
   * when T is an anonymous access{-to-object} type (see 3.10) with designated
     type D, to an access-to-[variable]{object} type whose designated type is
@@ -360,6 +389,49 @@
 [Note: In the !corrigendum wording below, we assume that AI-230 is also
 approved.]
 
+!corrigendum 3.2(7)
+
+@drepl
+The set of possible values for an object of a given type can be subjected to a
+condition that is called a constraint (the case of a @i<null
+constraint> that specifies no restriction is also included); the rules for
+which values satisfy a given kind of constraint are given in 3.5 for
+@fa<range_constraint>s, 3.6.1 for @fa<index_constraint>s, and 3.7.1 for
+@fa<discriminant_constraint>s.
+@dby
+The set of possible values for an object of a given type can be subjected to a
+condition that is called a constraint (the case of a @i<null
+constraint> that specifies no restriction is also included); the rules for
+which values satisfy a given kind of constraint are given in 3.5 for
+@fa<range_constraint>s, 3.6.1 for @fa<index_constraint>s, and 3.7.1 for
+@fa<discriminant_constraint>s. The set of possible values for an object of an
+access type can also be subject to a condition that is called a null
+exclusion (see 3.10).
+
+!corrigendum 3.2(8)
+
+@drepl
+A @i<subtype> of a given type is a combination of the type,
+a constraint on values of the type, and certain
+attributes specific to the subtype.
+The given type is called the type @i<of> the subtype.
+Similarly, the associated constraint is called the
+constraint @i<of> the subtype. The set of values
+of a subtype consists of the values of its type
+that satisfy its constraint.
+Such values @i<belong> to the subtype.
+@dby
+A @i<subtype> of a given type is a combination of the type,
+a constraint on values of the type, and certain
+attributes specific to the subtype.
+The given type is called the type @i<of> the subtype.
+Similarly, the associated constraint is called the
+constraint @i<of> the subtype. The set of values
+of a subtype consists of the values of its type
+that satisfy its constraint@Chg{Version=[2],New=[ and, in the case
+of a subtype of an access type, any applicable null exclusion],Old=[]}.
+Such values @i<belong> to the subtype.
+
 !corrigendum 3.2.2(3)
 
 @drepl
@@ -446,7 +518,8 @@
 which returns an access value designating a newly created object (see 3.10.2).
 @dby
 For each access type, there is a null access value designating no entity at
-all. The null value of an access type is the default initial value of the type.
+all, which can be obtained by converting the literal @b<null> to the access
+type. The null value of an access type is the default initial value of the type.
 Other values of an access type are obtained by evaluating an
 @fa<attribute_reference> for the Access or Unchecked_Access attribute of
 a non-intrinsic subprogram or an aliased view of an object, or, in the
@@ -497,6 +570,24 @@
 A literal @fa<null> shall not be of an anonymous access type, since such types
 do not have a null value (see 3.10).
 
+
+!corrigendum 4.5.2(30)
+
+@drepl
+@xbullet<The tested type is not scalar, and
+the value of the @nt<simple_expression> satisfies any constraints
+of the named subtype, and, if the type of the @nt<simple_expression>
+is class-wide, the value has a tag that identifies a type covered by
+the tested type.>
+@dby
+@xbullet<The tested type is not scalar, and
+the value of the @nt<simple_expression> satisfies any constraints
+of the named subtype, and:>
+@xinbull<if the type of the @fa<simple_expression> is class-wide, the
+value has a tag that identifies a type covered by the tested type.>
+@xinbull<if the tested type is an access type and the named subtype excludes
+null, the value of the @fa<simple_expression> is not null.>
+
 !corrigendum 4.6(49)
 
 @drepl
@@ -602,6 +693,24 @@
 In the case where the type is defined by an @fa<access_definition>,
 the renamed entity shall be of an access-to-constant type if and
 only if the @fa<access_definition> defines an access-to-constant type.
+
+!corrigendum 8.6(20)
+
+@drepl
+The @i<expected type> for a given @fa<expression>, @fa<name>,
+or other construct determines, according to the @i<type resolution
+rules> given below, the types considered for the construct during
+overload resolution.
+The type resolution rules provide support for class-wide programming,
+universal numeric literals, dispatching
+operations, and anonymous access types:
+@dby
+The @i<expected type> for a given @fa<expression>, @fa<name>,
+or other construct determines, according to the @i<type resolution
+rules> given below, the types considered for the construct during
+overload resolution.
+The type resolution rules provide support for class-wide programming,
+universal literals, dispatching operations, and anonymous access types:
 
 !corrigendum 8.6(25)
 

Questions? Ask the ACAA Technical Agent