CVS difference for ais/ai-50217.txt

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

--- ais/ai-50217.txt	2005/01/28 02:10:57	1.20
+++ ais/ai-50217.txt	2005/06/16 23:47:53	1.21
@@ -1,4 +1,5 @@
-!standard 10.01.01   (12)                           04-11-24  AI95-00217-06/13
+!standard 10.01.01   (12)                           05-06-07  AI95-00217-06/14
+!standard 10.01.01   (15)
 !standard 10.01.01   (26)
 !standard 10.01.02   (04)
 !standard 10.01.02   (06)
@@ -99,7 +100,7 @@
 is hidden from all visibility at places that are not within the scope of a
 limited_with_clause that mentions it; in addition, the limited view is hidden
 from all visibility within the declarative region of the package, as well as
-within the scope of any nonlimited_with_clause that mentions it.
+within the scope of any nonlimited_with_clause that mentions the package.
 
 Replace 8.4(5) by:
 
@@ -117,7 +118,7 @@
 
 For each package named in a use_package_clause whose scope encloses a place,
 each declaration that occurs immediately within the declarative region of the
-package is potentially use-visible at this place if the declaration is visible
+package is *potentially use-visible* at this place if the declaration is visible
 at this place. For each type T or T'Class named in a use_type_clause whose
 scope encloses a place, the declaration of each primitive operator of type T is
 potentially use-visible at this place if its declaration is visible at this
@@ -159,16 +160,22 @@
 A library package_declaration is the completion of the declaration of its
 limited view.
 
+Change 10.1.1(15):
+
+"...On the other hand, a name that denotes a library_unit_renaming_declaration
+is allowed in a {nonlimited_}with_clause and other places..."
+
 Insert in 10.1.1(26):
 
-The implicit declaration of the limited view of a library package depends
-semantically upon the implicit declaration of the limited view of its parent.
-The declaration of a library package depends semantically upon the implicit
+The declaration of the limited view of a library package depends
+semantically upon the declaration of the limited view of its parent.
+The declaration of a library package depends semantically upon the
 declaration of its limited view.
 
 Dynamic Semantics
 
-The elaboration of the limited view of a package has no effect.
+The elaboration of the declaration of the limited view of a package has no
+effect.
 
 
 Replace 10.1.2(4) by:
@@ -195,19 +202,13 @@
 
 A limited_with_clause which names a library_item shall not appear:
 
-o  in the same context_clause as a nonlimited_with_clause which mentions the
-   same library_item; or
-
-o  in the same context_clause as a use_clause which names an entity declared
-   within the declarative region of the library_item; or
-
 o  in the context_clause for the named library_item; or
 
-o  in the scope of a nonlimited_with_clause which mentions the same
-   library_item; or
+o  in the same context_clause as, or within the scope of, a
+   nonlimited_with_clause which mentions the same library_item; or
 
-o  in the scope of a use_clause which names an entity declared within the
-   declarative region of the library_item.
+o  in the same context_clause as, or within the scope of, a use_clause which
+   names an entity declared within the declarative region of the library_item.
 
 AARM Note: We have to explicitly disallow
    limited with P;
@@ -222,6 +223,11 @@
 way such a dependence can be broken.
 End AARM Note.
 
+Change 10.1.2(9):
+
+"...Thus, within a compilation unit that mentions {a view other than a
+limited view of} its declaration, ..."
+
 Add after 10.1.4(3):
 
 The mechanisms for adding a unit mentioned in a limited_with_clause to an
@@ -236,8 +242,8 @@
 
 Add after 10.2(6):
 
-o  If the limited view of a unit is needed, then the full view of the unit is
-   needed.
+o  If the limited view of a unit is needed, then so is the full view of the
+   unit.
 
 !discussion
 
@@ -558,8 +564,8 @@
 package is hidden from all visibility at places that are not within the scope
 of a @fa<limited_with_clause> that mentions it; in addition, the limited view
 is hidden from all visibility within the declarative region of the package, as
-well as within the scope of any @fa<nonlimited_with_clause> that mentions it.
-For each declaration or renaming of a generic unit as a child of some
+well as within the scope of any @fa<nonlimited_with_clause> that mentions the
+package. For each declaration or renaming of a generic unit as a child of some
 parent generic package, there is a corresponding declaration nested immediately
 within each instance of the parent. Such a nested declaration is hidden from
 all visibility except at places that are within the scope of a @fa<with_clause>
@@ -595,7 +601,7 @@
 @i<potentially use-visible> at this place if the declaration is visible at this
 place. For each type @i<T> or @i<T>'Class determined by a @fa<subtype_mark> of
 a @fa<use_type_clause> whose scope encloses a place, the declaration of each
-primitive operator of type @i<T> is @i<potentially use-visible> at this place
+primitive operator of type @i<T> is potentially use-visible at this place
 if its declaration is visible at this place.
 @dby
 For each package named in a @fa<use_package_clause> whose scope encloses a
@@ -603,7 +609,7 @@
 of the package is @i<potentially use-visible> at this place if the declaration
 is visible at this place. For each type @i<T> or @i<T>'Class named in a
 @fa<use_type_clause> whose scope encloses a place, the declaration of each
-primitive operator of type @i<T> is @i<potentially use-visible> at this place
+primitive operator of type @i<T> is potentially use-visible at this place
 if its declaration is visible at this place.
 
 !corrigendum 8.5.3(3)
@@ -649,6 +655,26 @@
 A library @fa<package_declaration> is the completion of the declaration of
 its limited view.
 
+!corrigendum 10.1.1(15)
+
+@drepl
+A @fa<parent_unit_name> (which can be used within a
+@fa<defining_program_unit_name> of a @fa<library_item>
+and in the @b<separate> clause of a @fa<subunit>),
+and each of its @fa<prefix>es, shall not denote a @fa<renaming_declaration>.
+On the other hand, a name that denotes a @fa<library_unit_renaming_declaration>
+is allowed in a @fa<with_clause>
+and other places where the name of a library unit is allowed.
+@dby
+A @fa<parent_unit_name> (which can be used within a
+@fa<defining_program_unit_name> of a @fa<library_item>
+and in the @b<separate> clause of a @fa<subunit>),
+and each of its @fa<prefix>es, shall not denote a @fa<renaming_declaration>.
+On the other hand, a name that denotes a @fa<library_unit_renaming_declaration>
+is allowed in a @fa<nonlimited_with_clause>
+and other places where the name of a library unit is allowed.
+
+
 !corrigendum 10.1.1(26)
 
 @drepl
@@ -664,9 +690,9 @@
 A @fa<library_item> depends semantically upon its parent declaration. A subunit
 depends semantically upon its parent body. A @fa<library_unit_body> depends
 semantically upon the corresponding @fa<library_unit_declaration>, if any.
-The implicit declaration of the limited view of a library package depends
-semantically upon the implicit declaration of the limited view of its parent.
-The declaration of a library package depends semantically upon the implicit
+The declaration of the limited view of a library package depends
+semantically upon the declaration of the limited view of its parent.
+The declaration of a library package depends semantically upon the
 declaration of its limited view. A
 compilation unit depends semantically upon each @fa<library_item> mentioned in
 a @fa<with_clause> of the compilation unit. In addition, if a given compilation unit
@@ -676,7 +702,8 @@
 
 @i<@s8<Dynamic Semantics>>
 
-The elaboration of the limited view of a package has no effect.
+The elaboration of the declaration of the limited view of a package has no
+effect.
 
 !corrigendum 10.1.2(4)
 
@@ -707,28 +734,49 @@
 or a subunit of a (public or private) descendant of that library unit.
 @dinss
 A @fa<library_item> mentioned in a @fa<limited_with_clause> shall be a
-@fa<package_declaration>[, not a @fa<subprogram_declaration>,
+@fa<package_declaration>, not a @fa<subprogram_declaration>,
 @fa<generic_declaration>, @fa<generic_instantiation>, or
-@fa<package_renaming_declaration>].
+@fa<package_renaming_declaration>.
 
 A @fa<limited_with_clause> shall not appear on a @fa<library_unit_body> or
 @fa<subunit>.
 
 A @fa<limited_with_clause> which names a @fa<library_item> shall not appear:
 
-@xbullet<in the same @fa<context_clause> as a @fa<nonlimited_with_clause> which
-mentions the same @fa<library_item>; or>
+@xbullet<in the @fa<context_clause> for the named @fa<library_item>; or>
 
-@xbullet<in the same @fa<context_clause> as a @fa<use_clause> which names an
-entity declared within the declarative region of the @fa<library_item>; or>
+@xbullet<in the same @fa<context_clause> as, or within the scope of, a
+@fa<nonlimited_with_clause> which mentions the same @fa<library_item>; or>
 
-@xbullet<in the @fa<context_clause> for the named @fa<library_item>; or>
+@xbullet<in the same @fa<context_clause> as, or within the scope of, a
+@fa<use_clause> which names an entity declared within the declarative region of
+the @fa<library_item>.>
 
-@xbullet<in the scope of a @fa<nonlimited_with_clause> which mentions the same
-@fa<library_item>; or>
+!corrigendum 10.1.2(8)
+
+@drepl
+@xindent<@s9<3  A @fa<library_item> mentioned in a @fa<with_clause> of a
+compilation unit is visible within the compilation unit and hence acts just
+like an ordinary declaration.
+Thus, within a compilation unit that mentions its declaration, the name of a
+library package can be given in @fa<use_clause>s and can be used to
+form expanded names, a library subprogram can be called,
+and instances of a generic library unit can be declared.
+If a child of a parent generic package is mentioned in a @fa<with_clause>,
+then the corresponding declaration nested within each visible instance
+is visible within the compilation unit.>>
+@dby
+@xindent<@s9<3  A @fa<library_item> mentioned in a @fa<with_clause> of a
+compilation unit is visible within the compilation unit and hence acts just
+like an ordinary declaration. Thus, within a compilation unit that mentions a
+view other than a limited view of its declaration, the name of a
+library package can be given in @fa<use_clause>s and can be used to
+form expanded names, a library subprogram can be called,
+and instances of a generic library unit can be declared.
+If a child of a parent generic package is mentioned in a @fa<with_clause>,
+then the corresponding declaration nested within each visible instance
+is visible within the compilation unit.>>
 
-@xbullet<in the scope of a @fa<use_clause> which names an entity declared
-within the declarative region of the @fa<library_item>.>
 
 !corrigendum 10.1.4(3)
 
@@ -3905,7 +3953,7 @@
 -----------------
 Thoughts on the implementation of "limited with" in AdaMagic
 
-          $Revision: 1.20 $ $Date: 2005/01/28 02:10:57 $
+          $Revision: 1.21 $ $Date: 2005/06/16 23:47:53 $
 
 The "limited with" clause makes a "limited view"
 of a package visible in the compilation unit
@@ -5714,7 +5762,7 @@
 -----------------
 Thoughts on the implementation of "limited with" in AdaMagic
 
-          $Revision: 1.20 $ $Date: 2005/01/28 02:10:57 $
+          $Revision: 1.21 $ $Date: 2005/06/16 23:47:53 $
 
 The "limited with" clause makes a "limited view"
 of a package visible in the compilation unit

Questions? Ask the ACAA Technical Agent