CVS difference for ais/ai-00377.txt

Differences between 1.2 and version 1.3
Log of other versions for file 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