CVS difference for ais/ai-00043.txt

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

--- ais/ai-00043.txt	1998/09/30 00:17:09	1.1
+++ ais/ai-00043.txt	1999/07/29 00:51:01	1.2
@@ -1,18 +1,19 @@
-!standard 12.05    (08)                               96-02-06  AI95-00043/02
+!standard 12.05    (08)                               99-07-28  AI95-00043/03
 !class binding interpretation 95-06-25
+!status Corrigendum 2000 99-07-28
 !status WG9 approved 95-06-14
 !status ARG approved (subject to editorial review) 8-0-3  95-11-01
 !status received 95-06-25
 !subject Predefined Operators for Generic Formal Array Types
 
-!summary 95-06-25
+!summary
 
 For a generic formal type whose properties depend on a partial view,
 (for example, a formal array type whose component type is a private type),
 the rules of 7.3.1 apply.  Thus, the primitive subprograms of the formal
 type are not necessarily declared immediately after its declaration.
 
-!question 95-06-25
+!question
 
 There is an inconsistency between paragraphs 7.3.1(3) and 12.5(8)
 regarding predefined operators for formal array types in some rare
@@ -51,24 +52,55 @@
 which case the relational operators would (?) be declared when entering the
 private part of the public child).
 
-!recommendation 95-06-25
+!recommendation
 
 For a generic formal type whose properties depend on a partial view,
 (for example, a formal array type whose component type is a private type),
 the rules of 7.3.1 apply.  Thus, the primitive subprograms of the formal
 type are not necessarily declared immediately after its declaration.
 
-!wording 95-06-25
+!wording
 
+(See corrigendum.)
 
-!discussion 95-06-25
+!discussion
 
 7.3.1(3) and 12.5(8) are in conflict for generic formal types.
 7.3.1(3) should take precedence, since otherwise the privacy of
 private types would be violated.  Furthermore, this interpretation
 is compatible with Ada 83.
 
-!appendix 95-06-25
+!corrigendum 12.05(8)
+
+@drepl
+The formal type also belongs to each class that contains the determined
+class. The primitive subprograms of the type are as for any type in the
+determined class. For a formal type other than a formal derived type, these
+are the predefined operators of the type; they are implicitly declared
+immediately after the declaration of the formal type. In an instance, the
+copy of such an implicit declaration declares a view of the predefined
+operator of the actual type, even if this operator has been overridden for
+the actual type. The rules specific to formal derived types are given in
+12.5.1.
+@dby
+The formal type also belongs to each class that contains the determined class.
+The primitive subprograms of the type are as for any type in the determined
+class. For a formal type other than a formal derived type, these are the
+predefined operators of the type; operators that are visible at the place of
+declaration of the formal type are implicitely declared immediately after the
+declaration of the formal type. Other operators may become visible later, in
+which case they are declared at a place determined according to the rules of
+7.3.1. In an instance, the copy of such an implicit declaration declares a view
+of the predefined operator of the actual type, even if this operator has been
+overridden for the actual type. The rules specific to formal derived types are
+given in 12.5.1.
+
+!ACATS test
+
+Create a C-Test as in the example in this ruling. It should try to use added
+operators.
+
+!appendix
 
 !section 12.5(8)
 !section 7.3.1(3)

Questions? Ask the ACAA Technical Agent