CVS difference for ais/ai-00326.txt

Differences between 1.13 and version 1.14
Log of other versions for file ais/ai-00326.txt

--- ais/ai-00326.txt	2004/11/14 06:37:13	1.13
+++ ais/ai-00326.txt	2005/01/07 03:07:40	1.14
@@ -1,5 +1,6 @@
 !standard 03.02      (04)                            04-11-12  AI95-00326/08
 !standard 03.02      (05)
+!standard 03.02.01   (08)
 !standard 03.07      (01)
 !standard 03.10.01   (02)
 !standard 03.10.01   (04)
@@ -105,6 +106,53 @@
    incomplete_type_declaration ::=
       TYPE defining_identifier [discriminant_part] [IS TAGGED];
 
+   Static Semantics
+
+   An incomplete_type_declaration declares an incomplete view of a type,
+   and its first subtype; the first subtype is unconstrained if a
+   known_discriminant_part appears. If the incomplete_type_declaration includes
+   the reserved word tagged, it declares a tagged incomplete view. An incomplete
+   view of a type is a limited view of the type (see 7.5).
+
+AARM Change: We define "incomplete view" and "tagged incomplete view" here.
+We explicitly say that "incomplete view"s do not have assignment.
+
+  Given an access type A whose designated type T is an incomplete view,
+  a dereference of a value of type A also has this incomplete view
+  except when:
+    * it occurs in the immediate scope of the completion of T, or
+    * it occurs in the scope of a nonlimited_with_clause that mentions
+      a library package in whose visible part the completion of T is declared.
+  In these cases, the dereference has the full view of T.
+
+AARM Note: We need the "in whose visible part" rule so that
+  the second rule doesn't trigger in the body of a package with a with of a
+  child unit:
+
+   package P is
+   private
+      type T;
+      type PtrT is access T;
+   end P;
+
+   private package P.C is
+      Ptr : PtrT;
+   end P.C;
+
+   with P.C;
+   package body P is
+       -- Ptr.all'Size is not legal here, but it is in the scope of a
+       -- nonlimited_with_clause for P.
+       type T is ...
+       -- Ptr.all'Size is legal here.
+   end P;
+
+AI-217 Note: The above rules come from AI-217-6. Note that here we say that
+  the view is complete, and thus none of the restrictions outlined in this
+  section apply, not just dereferencing as the AI-217-6 wording said. That
+  is what was intended by AI-217-6 (the wording was faulty).
+
+
 Modify 3.10.1(4):
 
 Add a new first sentence:
@@ -158,52 +206,8 @@
 used in other contexts do not pose a problem since normal type matching
 will preclude their use except when the full type is "nearby" as context
 (e.g. as the expected type).
-
-Replace 3.10.1(11):
-
-   An incomplete_type_declaration declares an incomplete view of a type,
-   and its first subtype; the first subtype is unconstrained if a
-   known_discriminant_part appears. If the incomplete_type_declaration includes
-   the reserved word tagged, it declares a tagged incomplete view. An incomplete
-   view of a type is a limited view of the type (see 7.5).
-
-AARM Change: We define "incomplete view" and "tagged incomplete view" here.
-We explicitly say that "incomplete view"s do not have assignment.
-
-  Given an access type A whose designated type T is an incomplete view,
-  a dereference of a value of type A also has this incomplete view
-  except when:
-    * it occurs in the immediate scope of the completion of T, or
-    * it occurs in the scope of a nonlimited_with_clause that mentions
-      a library package in whose visible part the completion of T is declared.
-  In these cases, the dereference has the full view of T.
-
-AARM Note: We need the "in whose visible part" rule so that
-  the second rule doesn't trigger in the body of a package with a with of a
-  child unit:
-
-   package P is
-   private
-      type T;
-      type PtrT is access T;
-   end P;
-
-   private package P.C is
-      Ptr : PtrT;
-   end P.C;
 
-   with P.C;
-   package body P is
-       -- Ptr.all'Size is not legal here, but it is in the scope of a
-       -- nonlimited_with_clause for P.
-       type T is ...
-       -- Ptr.all'Size is legal here.
-   end P;
-
-AI-217 Note: The above rules come from AI-217-6. Note that here we say that
-  the view is complete, and thus none of the restrictions outlined in this
-  section apply, not just dereferencing as the AI-217-6 wording said. That
-  is what was intended by AI-217-6 (the wording was faulty).
+Delete 3.10.1(11) (we moved it above)
 
 4.1(9): No change is needed. Note that this differs from the proposed AI-217-6.
 
@@ -481,6 +485,21 @@
 @dby
 @xcode<@fa<incomplete_type_declaration ::= >@ft<@b<type>>@fa< defining_identifier [discriminant_part] [>@ft<@b<is tagged>>@fa<];>>
 
+@i<@s8<Static Semantics>>
+
+An @fa<incomplete_type_declaration> declares an @i<incomplete view> of a type,
+and its first subtype; the first subtype is unconstrained if a
+@fa<known_discriminant_part> appears. If the @fa<incomplete_type_declaration>
+includes the reserved word @b<tagged>, it declares a @i<tagged incomplete view>.
+An incomplete view of a type is a limited view of the type (see 7.5).
+
+Given an access type @i<A> whose designated type @i<T> is an incomplete view,
+a dereference of a value of type @i<A> also has this incomplete view
+except when:
+@xbullet<it occurs in the immediate scope of the completion of @i<T>, or>
+@xbullet<it occurs in the scope of a @fa<nonlimited_with_clause> that mentions
+a library package in whose visible part the completion of @i<T> is declared.>
+In these cases, the dereference has the full view of @i<T>.
 !corrigendum 3.10.1(4)
 
 @drepl
@@ -564,24 +583,10 @@
 
 !corrigendum 3.10.1(11)
 
-@drepl
+@ddel
 An @fa<incomplete_type_declaration> declares an incomplete type and its first
 subtype; the first subtype is unconstrained if a @fa<known_discriminant_part>
 appears.
-@dby
-An @fa<incomplete_type_declaration> declares an @i<incomplete view> of a type,
-and its first subtype; the first subtype is unconstrained if a
-@fa<known_discriminant_part> appears. If the @fa<incomplete_type_declaration>
-includes the reserved word @b<tagged>, it declares a @i<tagged incomplete view>.
-An incomplete view of a type is a limited view of the type (see 7.5).
-
-Given an access type @i<A> whose designated type @i<T> is an incomplete view,
-a dereference of a value of type @i<A> also has this incomplete view
-except when:
-@xbullet<it occurs in the immediate scope of the completion of @i<T>, or>
-@xbullet<it occurs in the scope of a @fa<nonlimited_with_clause> that mentions
-a library package in whose visible part the completion of @i<T> is declared.>
-In these cases, the dereference has the full view of @i<T>.
 
 !corrigendum 10.1.1(12)
 

Questions? Ask the ACAA Technical Agent