Version 1.1 of ais/ai-00377.txt
!standard 08.03(26/1) 04-04-20 AI95-00377/00
!class binding interpretation 04-04-20
!status received 04-03-23
!priority Low
!difficulty Medium
!subject Naming of generic child packages
!summary
!question
!recommendation
!wording
!discussion
--!corrigendum
!example
!ACATS test
!appendix
From: Stephen W. Baird
Sent: Tuesday, March 23, 2004 12:34 AM
Consider the following example:
generic
package G1 is
end G1;
generic
package G1.G2 is
end G1.G2;
with G1;
package I1 is new G1;
with G1;
package I1.G2 renames Standard;
with G1.G2;
with I1.G2;
package Q1 renames I1.G2; -- legal?
with G1.G2;
with I1.G2;
package Q2 is new I1.G2; -- legal?
with G1.G2;
with I1.G2;
with System;
procedure Q3 (X : System.Address := I1.G2'Address); -- legal?
Should Q1, Q2, and Q3 be rejected?
It seems to me that they should, but RM justification for this position is
not obvious.
In particular, the two "I1.G2" declarations, one a generic package and one
a non-generic package rename, do not appear to be hidden from all
visibility at the points where the name is used.
One might argue that withing both G1.G2 and I1.G2 implicitly results in a
view of package I1 which violates the first sentence of 8.3(26/1), but
that seems like a stretch.
****************************************************************
Questions? Ask the ACAA Technical Agent