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

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

--- ai05s/ai05-0198-1.txt	2010/02/23 07:31:06	1.2
+++ ai05s/ai05-0198-1.txt	2011/03/13 03:02:58	1.3
@@ -1,5 +1,7 @@
-!standard  3.9.3(4/3)                               10-02-09    AI05-0198-1/01
+!standard  3.9.3(4/3)                               11-03-11    AI05-0198-1/02
 !class binding interpretation 10-02-09
+!status Amendment 2012 11-03-11
+!status ARG Approved  6-0-2  11-02-20
 !status work item 10-02-09
 !status received 09-07-01
 !priority Low
@@ -18,11 +20,12 @@
 
    package Pack is
       type Unit is new Float;
-      function "*" (L, R : Unit) return Unit is abstract;
+      function "*" (Left, Right : Unit) return Unit is abstract;
 
       type Unit_Squared is new Unit;
-      -- function "*" (L, R : Unit_Squared) return Unit_Squared is abstract;
-      -- function "*" (L, R : Unit_Squared) return Unit_Squared is
+      -- function "*" (Left, Right : Unit_Squared) return Unit_Squared is
+      --     abstract;
+      -- function "*" (Left, Right : Unit_Squared) return Unit_Squared is
       --     <predefined>;
    end Pack;
 
@@ -102,13 +105,42 @@
 covered by this wording.
 
 
---!corrigendum 3.9.3(4/2)
+Note that 8.3(12.3/2) requires that all of the homographs are fully conformant
+in order for one to be "chosen arbitrarily". If that is not true, then the
+operators are hidden from all visibility. For instance, had "*" been declared:
+
+      function "*" (Left, Right : Unit) return Unit is abstract;
+
+the homographs would have been hidden. This also has the effect that we want
+(the operation is not considered in expressions).
+
+
+!corrigendum 3.9.3(4/2)
+
+@drepl
+If a type has an implicitly declared primitive subprogram that is inherited
+or is the predefined equality operator, and the corresponding primitive
+subprogram of the parent or ancestor type is abstract or is a function
+with a controlling access result, or if a type other than a
+non-abstract null extension inherits a function with a controlling result,
+then:
+@dby
+If a type has an implicitly declared primitive subprogram that is inherited
+or is a predefined operator, and the corresponding primitive
+subprogram of the parent or ancestor type is abstract or is a function
+with a controlling access result, or if a type other than a non-abstract
+null extension inherits a function with a controlling result, then:
 
 
 !ACATS Test
 
 An ACATS B-Test should be created that is similar to the example in the
 question.
+
+!ASIS
+
+No impact on the ASIS standard (ASIS implementations may need adjustment).
+
 
 !appendix
 

Questions? Ask the ACAA Technical Agent