CVS difference for ai05s/ai05-0076-1.txt
--- ai05s/ai05-0076-1.txt 2007/12/06 06:51:50 1.1
+++ ai05s/ai05-0076-1.txt 2008/03/07 06:15:19 1.2
@@ -1,5 +1,6 @@
-!standard 3.9.2(2/2) 07-12-05 AI05-0076-1/01
+!standard 3.9.2(2/2) 08-02-25 AI05-0076-1/02
!class binding interpretation 07-12-05
+!status ARG Approved 8-0-0 08-02-09
!status work item 07-12-05
!status received 07-10-25
!priority Low
@@ -18,7 +19,7 @@
If we look up the definition of "controlling result", we find 3.9.2(2/2)
which says "If the call is to a (primitive) function with result type T,
-then the call has a controlling result — the context of the call can control
+then the call has a controlling result - the context of the call can control
the dispatching."
This clearly defines a *call* with a controlling result, but nothing is said
@@ -35,18 +36,14 @@
Modify the last two sentences of 3.9.2(2/2):
-If the call is to a (primitive) function with result type T, then the call
-has a *controlling result* — the context of the call can control the dispatching.
-{A *function with a controlling result* is one that can be used in such a call.}
-Similarly, if the call is to a function with {an} access result type designating T,
-then the call has a *controlling access result*, and the context can similarly
-control dispatching. {Again, a function that can be used in such a call is
-known as a *function with a controlling access result*.}
-
-AARM Ramification: A function with a controlling result or controlling access result
-is necessarily a primitive function of some tagged type, but not all primitive
-functions have controlling results as that depends on the result type of the
-function.
+If the call is to a (primitive) function with result type
+T {(a function with a controlling result)}, then the call
+has a controlling result - the context of the call can
+control the dispatching. Similarly, if the call is to a
+function with {an} access result type designating T
+{(a function with a controlling access result)}, then the
+call has a controlling access result, and the context can
+similarly control dispatching."
!discussion
@@ -88,17 +85,16 @@
@i<controlling formal parameter>. If the controlling formal parameter is an
access parameter, the controlling operand is the object designated by the
actual parameter, rather than the actual parameter itself. If the call is to a
-(primitive) function with result type @i<T>, then the call has a
-@i<controlling result> @emdash the context of the call can control the dispatching.
-A @i<function with a controlling result> is one that can be used in such a call.
-Similarly, if the call is to a function with an access result type designating @i<T>,
-then the call has a controlling access result, and the context can similarly
-control dispatching. Again, a function that can be used in such a call is
-known as a @i<function with a controlling access result>.
+(primitive) function with result type @i<T> (a @i<function with a controlling result>),
+then the call has a @i<controlling result> @emdash the context of the call can
+control the dispatching. Similarly, if the call is to a function with an
+access result type designating @i<T> (a @i<function with a controlling access
+result>), then the call has a controlling access result, and the context
+can similarly control dispatching.
!ACATS Test
-An ACATS test is not needed, as there intended rule change.
+An ACATS test is not needed, as there is no rule change.
!appendix
Questions? Ask the ACAA Technical Agent