CVS difference for ais/ai-00122.txt

Differences between 1.2 and version 1.3
Log of other versions for file ais/ai-00122.txt

--- ais/ai-00122.txt	1998/09/30 23:25:11	1.2
+++ ais/ai-00122.txt	1999/07/21 03:10:57	1.3
@@ -1,4 +1,4 @@
-!standard 08.04    (08)                               98-06-12  AI95-00122/02
+!standard 08.04    (08)                               99-05-28  AI95-00122/03
 !class confirmation 96-04-04
 !status WG9 approved 98-06-12
 !status ARG Approved  11-0-2  97-11-14
@@ -8,12 +8,12 @@
 !difficulty Medium
 !subject Use_type_clause where First Subtype is not Directly Visible
 
-!summary 96-04-04
+!summary
 
 A use_type_clause can make the primitive operators of the type directly
 visible even if the first subtype name itself is not directly visible.
 
-!question 96-04-04
+!question
 
 Consider:
 
@@ -38,7 +38,7 @@
 "+" operator of type Entier directly visible?  Note that the name
 "Entier" is not directly visible in Test_Definitions.
 
-!response 96-04-04
+!response
 
 Yes, the above use_type_clause makes "+" directly visible, so the above
 example is legal.
@@ -121,8 +121,13 @@
 be legal at the place of the use_type_clause, and that would denote
 Types."+".
 
-!appendix 96-04-10
+!ACATS test
 
+Add test cases to ACATS test C840001 to check that "invisible" operators
+are still use type visible (as in this issue).
+
+!appendix
+
 !section 8.4(08)
 !subject use_type_clause where the first named subtype is not visible
 !reference RM95-8.4 (8)
@@ -200,14 +205,14 @@
 !discussion
 
 > 8.4 (8) says:
-> 
+>
 >    "For type T or T'Class determined by a subtype_mark of 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 place."
-> 
-> I believe that "its declaration" means "the declaration of type T". 
+>
+> I believe that "its declaration" means "the declaration of type T".
 
 No, the intent is that "its" refers to "each primitive operator".  In
 other words, for each primitive operator of T, if the declaration of
@@ -222,14 +227,14 @@
 
 >...However,
 > what does mean "the declaration of type T is visible" ?
-> 
+>
 > 8.3 (2) defines where a "declaration is visible":
-> 
+>
 >    "A declaration is defined to be visible wherever it is directly visible,
 > as well
 >     as at other places where some name (such as a selected_component) can denote
 >     the declaration."
-> 
+>
 > What names can denote the declaration of a type ? Only the first subtype ?
 > Any subtype with the same constraint as the first subtype ? Or any subtype ?
 
@@ -237,16 +242,16 @@
 believe what I said above.  ;-)
 
 > Consider:
-> 
+>
 > package Types is
 >    type Entier is range 0 .. 100;
 > end Types;
-> 
+>
 > with Types;
 > package Definitions is
 >    subtype Entier is Types.Entier;
 > end Definitions;
-> 
+>
 > with Definitions;
 > use type Definitions.Entier;
 > with Text_Io;
@@ -256,7 +261,7 @@
 >    Mon_Entier := Mon_Entier + 5;
 >    ThexT_io.Put_Line (Definitions.Entier'Image (Mon_Entier));
 > end Test_Definitions;
-> 
+>
 > Is procedure Test_Definitions legal ? Is the "declaration of the type of
 > Entier" visible in the use type clause ?
 
@@ -269,11 +274,11 @@
 declaration of the operation being visible is irrelevant.
 
 > I believe it should be.
-> 
+>
 > What if subtype Entier is defined in package Definitions as:
-> 
+>
 >    subtype Entier is Types.Entier range 0 .. 10;
-> 
+>
 > Is procedure Test_Definitions still legal ?
 
 The constraint makes no difference.  It's still legal.
@@ -374,12 +379,12 @@
 > package Types is
 >    type Entier is range 0 .. 100;
 > end Types;
-> 
+>
 > with Types;
 > package Definitions is
 >    subtype Entier is Types.Entier;
 > end Definitions;
-> 
+>
 > with Definitions;
 > use type Definitions.Entier;
 > with Text_Io;
@@ -425,13 +430,13 @@
 (soon).
 
 > Now what if the specification of package Definitions was:
-> 
+>
 > with Types;
 > package Definitions is
 >    package T renames Types;
 >    subtype Entier is Types.Entier;
 > end Definitions;
-> 
+>
 > would that make the procedure Test_Definitions legal?
 
 It makes no difference -- Test_Definitions is legal either way.

Questions? Ask the ACAA Technical Agent