CVS difference for ai05s/ai05-0128-1.txt

Differences between 1.1 and version 1.2
Log of other versions for file ai05s/ai05-0128-1.txt

--- ai05s/ai05-0128-1.txt	2008/10/25 00:24:33	1.1
+++ ai05s/ai05-0128-1.txt	2009/02/17 05:54:13	1.2
@@ -1,4 +1,4 @@
-!standard 8.4(8/2)                                            08-10-24  AI05-0128-1/00
+!standard 3.2.3(6)                                              08-02-15  AI05-0128-1/01
 !class binding interpretation 08-10-17
 !status work item 08-10-17
 !status received 08-08-22
@@ -11,9 +11,6 @@
 
 "/=" is a primtive operation for the purposes of a use type clause.
 
-[ED: We need to make sure that calling it primitive always doesn't cause
-something bad.]
-
 !question
 
 Consider:
@@ -67,14 +64,37 @@
 
 (See Summary.)
 
-!wording
+Add after RM 3.2.3(6):
 
-** TBD **
+  * For a specific type with an explicitly-declared primitive "="
+    operator whose result type is Boolean, the corresponding "/=" operator
+    (see 6.6);
 
 !discussion
 
+Adding a bullet to 3.2.3 seems the simplest way to include the implicitly
+declared "/=" operator produced when an "=" is explicitly declared.
+
+We originally considered simply eliminating the word "explicitly" from
+3.2.3(6), and thereby including the implicitly declared "/=".  That also
+would have included, redundantly, the inherited subprograms and
+predefined operators, but that seemed OK. The only real concern was
+that we might include implicitly declared subprograms that we did *not*
+want to consider primitive. Unfortunately, there are such cases. In
+particular, in the following example, an implicitly declared operation
+that operates on type B is not a primitive of B:
+
+   package P is
+       type A is (dummy);
+       type B is (nothing);
+       procedure Prim(X : A; Y : B);
+       type C is new A;
+       -- implicit declaration of:
+       --     procedure Prim(X : C; Y : B);
+       -- This is *not* a primitive of B.
+   end P;
 
---!corrigendum 8.4(8/2)
+--!corrigendum 3.2.3(6)
 
 
 !ACATS Test

Questions? Ask the ACAA Technical Agent