CVS difference for ais/ai-00377.txt
--- ais/ai-00377.txt 2004/08/31 23:06:43 1.2
+++ ais/ai-00377.txt 2004/10/05 22:49:20 1.3
@@ -1,4 +1,4 @@
-!standard 08.03(26/1) 04-08-31 AI95-00377/01
+!standard 08.03(26/1) 04-10-04 AI95-00377/02
!class binding interpretation 04-04-20
!status work item 04-08-31
!status received 04-03-23
@@ -10,7 +10,8 @@
If a library unit generic and a library unit instance thereof have child
units with the same name, then the explicitly declared child of the instance
-hides the implicit declaration corresponding to the child of the generic.
+and the implicit declaration corresponding to the child of the generic
+hide each other.
!question
@@ -30,6 +31,13 @@
is not visible within the scope of a with_clause that mentions a child
unit of the instance which is a homograph of this declaration.
+Append after 10.1.2(7):
+
+A child unit of a library unit instance of a generic package
+is not visible within the scope of a with_clause that mentions
+a child unit of the generic which is a homograph of the child
+unit of the instance.
+
!discussion
This scenario never occurs in practice. The language needs to be well-defined
@@ -42,14 +50,9 @@
special-case visibility rules, and that is reason enough to abandon this
approach.
-Another approach would be to say that neither of the two declarations are
-visible, but the suggested solution seems simpler. In addition, the suggested
-solution is consistent with Ada's notion that in general an explicit
-declaration hides an implicitly declared homograph.
+Another approach would be to prefer one of the declarations over the other,
+but hiding both declarations seems cleaner.
-In the wording section, should "is not visible" be replaced with
-"is hidden from all visibility"?
-
!example
generic
@@ -71,7 +74,7 @@
with G1.G2;
with I1.G2;
- package Q1 renames I1.G2; -- legal? (yes)
+ package Q1 renames I1.G2; -- legal? (no)
with G1.G2;
with I1.G2;
@@ -80,11 +83,13 @@
with G1.G2;
with I1.G2;
with System;
- procedure Q3 (X : System.Address := I1.G2'Address); -- legal? (yes)
+ procedure Q3 (X : System.Address := I1.G2'Address); -- legal? (no)
--!corrigendum
!ACATS test
+
+A B-Test should be constructed out of the example of this AI.
!appendix
Questions? Ask the ACAA Technical Agent