CVS difference for ais/ai-00423.txt

Differences between 1.9 and version 1.10
Log of other versions for file ais/ai-00423.txt

--- ais/ai-00423.txt	2005/10/31 05:18:43	1.9
+++ ais/ai-00423.txt	2005/12/15 02:44:19	1.10
@@ -1,4 +1,4 @@
-!standard 8.5.1(2)                                    05-09-29  AI95-00423/07
+!standard 8.5.1(2)                                    05-12-02  AI95-00423/08
 !standard 8.5.1(4)
 !standard 8.5.4(4)
 !standard 12.4(2)
@@ -106,11 +106,10 @@
 For an object_renaming_declaration with a null_exclusion or an
 access_definition that has a null_exclusion:
 
-o  if the object_renaming_declaration occurs within the body of a generic unit
-   G or within the body of a generic unit declared within the declarative
-   region of the generic unit G, and the object_name denotes a generic formal
-   object of G, then the declaration of that formal object shall have a
-   null_exclusion;
+o  if the object_name denotes a generic formal object of a generic unit G,
+   and the object_renaming_declaration occurs within the body of G or within
+   the body of a generic unit declared within the declarative region of G,
+   then the declaration of the formal object of G shall have a null_exclusion;
 
 o  otherwise, the subtype of the object_name shall exclude null. In addition to
    the places where Legality Rules normally apply (see 12.3), this rule
@@ -121,11 +120,12 @@
 For a parameter or result subtype of the subprogram_specification that has
 an explicit null_exclusion:
 
-o   if the subprogram_renaming_declaration occurs within the body of a generic
-    unit G or within the body of a generic unit declared within the declarative
-    region of the generic unit G, and the callable_entity_name denotes a
-    generic formal subprogram of G, then the corresponding parameter or
-    result subtype of that formal subprogram shall have a null_exclusion;
+o   if the callable_entity_name denotes a generic formal subprogram of a
+    generic unit G, and the subprogram_renaming_declaration occurs within the
+    body of a generic unit G or within the body of a generic unit declared
+    within the declarative region of the generic unit G, then the corresponding
+    parameter or result subtype of the formal subprogram of G shall have a
+    null_exclusion;
 
 o   otherwise, the subtype of the corresponding parameter or result type of the
     renamed callable entity shall exclude null. In addition to
@@ -166,12 +166,14 @@
 For a formal_object_declaration with a null_exclusion or an access_definition
 that has a null_exclusion:
 
-o   for an instantiation that occurs within the body of a generic unit G or
-    within the body of a generic unit declared within the declarative region of
-    the generic unit G, and the actual denotes a generic formal object of G,
-    then the declaration of that formal object shall have a null_exclusion;
+o   if the actual matching the formal_object_declaration denotes a
+    generic formal object of another generic unit G,
+    and the instantation containing the actual occurs within the body of G or within the body of a
+    generic unit declared within the declarative region of G, then the
+    declaration of the formal object of G shall have a null_exclusion;
 
-o   otherwise, the subtype of the actual shall exclude null. In addition to
+o   otherwise, the subtype of the actual
+    matching the formal_object_declaration shall exclude null. 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.
 
@@ -191,14 +193,17 @@
 For a parameter or result type of a formal_subprogram_declaration that has an
 explicit null_exclusion:
 
-o   for an instantiation that occurs within the body of a generic unit G or
-    within the body of a generic unit declared within the declarative region of
-    the generic unit G, and the actual denotes a generic formal subprogram of
-    G, then the corresponding parameter or result type of that formal
-    subprogram shall have a null_exclusion;
+o   if the actual matching the formal_subprogram_declaration denotes
+    a generic formal object of another generic unit G, and the
+    instantiation containing the actual that occurs within the body
+    of a generic unit G or within the body of a generic unit declared within
+    the declarative region of
+    the generic unit G, then the corresponding parameter or result type of
+    the formal subprogram of G shall have a null_exclusion;
 
 o   otherwise, the subtype of the corresponding parameter or result type of the
-    actual shall exclude null. In addition to
+    actual matching the formal_subprogram_declaration shall exclude null.
+    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.
 
@@ -226,11 +231,11 @@
 For an @fa<object_renaming_declaration> with a @fa<null_exclusion> or an
 @fa<access_definition> that has a @fa<null_exclusion>:
 
-@xbullet<if the @fa<object_renaming_declaration> occurs within the body of a
-generic unit @i<G> or within the body of a generic unit declared within the
-declarative region of the generic unit @i<G>, and the @i<object_>@fa<name>
-denotes a generic formal object of @i<G>, then the declaration of that formal
-object shall have a @fa<null_exclusion>;>
+@xbullet<if the @i<object_>@fa<name> denotes the generic formal object of a
+generic unit @i<G>, and the @fa<object_renaming_declaration> occurs within the
+body of @i<G> or within the body of a generic unit declared within the
+declarative region of @i<G>, then the declaration of the formal object of @i<G>
+shall have a @fa<null_exclusion>;>
 
 @xbullet<otherwise, the subtype of the @i<object_>@fa<name> shall exclude null.
 In addition to the places where Legality Rules normally apply (see 12.3), this
@@ -245,12 +250,13 @@
 For a parameter or result subtype of the @fa<subprogram_specification> that
 has an explicit @fa<null_exclusion>:
 
-@xbullet<if the @fa<subprogram_renaming_declaration> occurs within the body of
-a generic unit @i<G> or within the body of a generic unit declared within the
-declarative region of the generic unit @i<G>, and the
-@i<callable_entity_>@fa<name> denotes a generic formal
-subprogram of @i<G>, then the corresponding parameter or result
-subtype of that formal subprogram shall have a @fa<null_exclusion>;>
+@xbullet<if the @i<callable_entity_>@fa<name> denotes a generic formal
+subprogram of a
+generic unit @i<G>, and the @fa<subprogram_renaming_declaration> occurs within
+the body of a generic unit @i<G> or within the body of a generic unit declared
+within the declarative region of the generic unit @i<G>, then the corresponding
+parameter or result subtype of the formal subprogram of @i<G> shall have a
+@fa<null_exclusion>;>
 
 @xbullet<otherwise, the subtype of the corresponding parameter or result type
 of the renamed callable entity shall exclude null. In addition to
@@ -305,13 +311,15 @@
 For a @fa<formal_object_declaration> with a @fa<null_exclusion> or an
 @fa<access_definition> that has a @fa<null_exclusion>:
 
-@xbullet<for an instantiation that occurs within the body of a generic unit
-@i<G> or within the body of a generic unit declared within the declarative
-region of the generic unit @i<G>, and the actual denotes a generic formal
-object of @i<G>, then the declaration of that formal object shall have a
+@xbullet<if the actual matching the @fa<formal_object_declaration> denotes the
+generic formal object of another generic unit @i<G>, and the instantation
+containing the actual occurs within the body of @i<G> or within the
+body of a generic unit declared within the declarative region of @i<G>, then
+the declaration of the formal object of @i<G> shall have a
 @fa<null_exclusion>;>
 
-@xbullet<otherwise, the subtype of the actual shall exclude null. In addition
+@xbullet<otherwise, the subtype of the actual matching the
+@fa<formal_object_declaration> shall exclude null. 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.>
 
@@ -343,14 +351,17 @@
 For a parameter or result subtype of a @fa<formal_subprogram_declaration> that
 has an explicit @fa<null_exclusion>:
 
-@xbullet<for an instantiation that occurs within the body of a generic unit
-@i<G> or within the body of a generic unit declared within the declarative
-region of the generic unit @i<G>, and the actual denotes a generic formal
-subprogram of @i<G>, then the corresponding parameter or result type of that
-formal subprogram shall have a @fa<null_exclusion>;>
+@xbullet<if the actual matching the @fa<formal_subprogram_declaration>
+denotes a generic formal object of another generic unit @i<G>, and the
+instantiation containing the actual that occurs within the body
+of a generic unit @i<G> or within the body of a generic unit declared within
+the declarative region of the generic unit @i<G>, then the corresponding
+parameter or result type of the formal subprogram of @i<G> shall have a
+@fa<null_exclusion>;>
 
 @xbullet<otherwise, the subtype of the corresponding parameter or result type
-of the actual shall exclude null. In addition to the places where Legality
+of the actual matching the @fa<formal_subprogram_declaration>
+shall exclude null. 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.>
 

Questions? Ask the ACAA Technical Agent