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

Differences between 1.11 and version 1.12
Log of other versions for file ai05s/ai05-0247-1.txt

--- ai05s/ai05-0247-1.txt	2011/06/03 02:42:13	1.11
+++ ai05s/ai05-0247-1.txt	2011/06/09 06:46:25	1.12
@@ -1,4 +1,4 @@
-!standard 6.1.1(0)                                    11-06-02  AI05-0247-1/10
+!standard 6.1.1(0)                                    11-06-09  AI05-0247-1/11
 !standard 7.3.2(0)
 !reference AI05-0145-2
 !class Amendment 11-03-21
@@ -302,7 +302,7 @@
   inherited from T2 does not fully conform to any class-wide precondition that
   applies P, then:
 
-  * If the type is abstract the implicit declared subprogram is *abstract*.
+  * If the type is abstract the implicitly declared subprogram is *abstract*.
 
   * Otherwise, the subprogram *requires overriding* and shall be overridden
     with a nonabstract subprogram.
@@ -345,6 +345,12 @@
     End AARM Ramification.
     [Editor's note: There is more on this topic in the !discussion.]
 
+    AARM Discussion: We use the term "requires overriding" here so that this
+    rule is taken into account when calculating visibility in 8.3; otherwise
+    we would have a mess when this routine is overridden. [Editor's Note:
+    8.3(12.2/3) to be specific, but we can't put paragraph numbers into AARM
+    notes.]
+
   If a renaming of a subprogram or entry S1 overrides an inherited subprogram
   S2, then the overriding is illegal unless each class-wide
   precondition that applies to S1 fully conforms to some
@@ -508,7 +514,7 @@
     and we need this rule for dispatching and access-to-subprogram calls
     anyway.]
 
-    We use the "for these purposes" part of the rule to include additional
+    We use the "for the purposes" part of the rule to include additional
     class-wide postconditions from those that apply to the original subprogram.
     This may happen if the operation is inherited from both a parent and a progenitor,
     and both the parent operation and progenitor operation have one or more
@@ -529,7 +535,7 @@
   or entry consists solely of checking the class-wide preconditions that apply
   to the denoted entity (not necessarily the one that is invoked).
 
-    AARM To Be Honest: The "for these purposes" rule mentioned in the previous
+    AARM To Be Honest: The "for the purposes" rule mentioned in the previous
     item also apply to class-wide preconditions of calls through
     access-to-subprogram values.
 
@@ -578,8 +584,8 @@
 
 Move 13.3.3 [from AI05-0146-1] to clause 7.3.2.
 
-In 7.3.2(8/3), change "Assertion_Policy" to "assertion policy" (as that is the
-term defined in 11.4.2).
+In 7.3.2(8/3) and 7.3.2(19/3), change "Assertion_Policy" to "assertion policy" (as
+that is the term defined in 11.4.2).
 
 Modify 7.3.2(18/3):
 
@@ -592,11 +598,11 @@
 in addition, if the subprogram is neither null nor abstract, the Type_Invariant(s)
 that apply to the parameter types of the invoked body are checked.
 
-    AARM Ramification: We use the "for these purposes" part of the rule to include
+    AARM Ramification: We use the "for the purposes" part of the rule to include
     additional Type_Invariant'Class checks from those that apply to the original
-    subprogram. This may happen if the operation is inherited from both a parent
-    and a progenitor, and both the parent operation and progenitor operation have
-    defined a Type_Invariant'Class.
+    subprogram. This may happen if the operation is inherited by a derived type
+    that has both a parent and a progenitor, and both the parent type and progenitor
+    type have defined a Type_Invariant'Class.
 
     For inherited concrete routines, we require the original Type_Invariant to be
     evaluated as well as the inherited Type_Invariant'Classes and the current type's
@@ -687,6 +693,11 @@
 
 Force a conflict; the real text is found in the conflict file.
 
+!corrigendum 7.3.2(0)
+
+@dinsc
+
+Force a conflict; the real text is found in the conflict file.
 
 !ACATS test
 

Questions? Ask the ACAA Technical Agent