CVS difference for ai05s/ai05-0126-1.txt
--- ai05s/ai05-0126-1.txt 2008/12/02 06:01:19 1.2
+++ ai05s/ai05-0126-1.txt 2009/05/31 05:47:47 1.3
@@ -1,4 +1,4 @@
-!standard 3.9.2(20/2) 08-11-14 AI05-0126-1/02
+!standard 3.9.2(20/2) 09-05-30 AI05-0126-1/03
!standard 3.9.2(20.1/2)
!standard 3.9.2(20.2/2)
!class binding interpretation 08-10-22
@@ -51,7 +51,7 @@
operation of the specific type identified by the controlling tag value".
But in this case, type Child has an inherited operation Hidden which exists but is
-is never implicitly declared anywhere for type Child. Should the wording cover
+never implicitly declared anywhere for type Child. Should the wording cover
this case? (Yes.)
!recommendation
@@ -78,32 +78,32 @@
actual parameters of the call, if any;
* otherwise, the action is the same as the action for the corresponding operation
- of the parent type or progenitor type from which the operation is inherited.
+ of the parent type or progenitor type from which the operation was inherited.
Replace the To Be Honest AARM note 3.9.2(20.a) with an AARM Ramification:
-"Corresponding primitive operation" refers to the inheritance relationship
+"Corresponding operation" refers to the inheritance relationship
between subprograms. Primitive operations are always inherited for a type T,
but they may not be declared if the primitive operation is never visible within
the immediate scope of the type T. If no corresponding operation is declared,
the corresponding operation of the parent type is executed (an explicit body
-that happens to have the right name is never called). Thus, any explicit
-declaration for an inherited corresponding primitive operation has to be
+that happens to have the same name and profile is never called). Thus, any
+explicit declaration for an inherited corresponding operation has to be
an overriding routine.
!discussion
-"Corresponding primitive operation" refers to the inheritance relationship
-between subprograms, and not any random subprogram with the correct name.
-Thus, any explicit declaration for an inherited corresponding primitive
-operation has to be an overriding routine. We don't talk about overriding
-in this wording as we also have to take into account the original
-root declarations (which may have a body).
+"Corresponding operation" refers to the inheritance relationship between
+subprograms, and not any random subprogram with the same name and profile.
+Thus, any explicit declaration for an inherited corresponding operation has
+to be an overriding routine. We don't talk about overriding in this wording
+as we also have to take into account the original root declarations (which
+may have a body).
AARM 3.9.2(20.a) refers to the original Ada 95 wording, and doesn't seem to be
necessary with the current wording. Thus we can replace it with new wording to
-explain "corresponding primitive operation".
+explain "corresponding operation".
!corrigendum 3.9.2(20/2)
@@ -151,7 +151,7 @@
@dby
@xbullet<otherwise, the action is the same as the action for
the corresponding operation of the parent type or progenitor type from
-which the operation is inherited.>
+which the operation was inherited.>
!ACATS Test
@@ -230,7 +230,7 @@
describes how dispatching occurs - an explicit routine is called, if any, and
then what happens if there is not an explicit routine.
-The text purposely dropped all of the bather about implicitly declared
+The text purposely dropped all of the blather about implicitly declared
operations, because that is irrelevant to the dynamic execution of the
dispatching operation.
@@ -357,7 +357,7 @@
[this explicit declaration would have to be overriding, else it is an illegal
homograph.]
-(5) Else (ignoring "implemented by for the moment"), go to the corresponding
+(5) Else (ignoring "implemented by" for the moment), go to the corresponding
routine of the parent type and try again (from step 3). (para 20.2).
Now, the only question is whether some other interpretation of "corresponding"
Questions? Ask the ACAA Technical Agent