CVS difference for ai12s/ai12-0170-1.txt

Differences between 1.7 and version 1.8
Log of other versions for file ai12s/ai12-0170-1.txt

--- ai12s/ai12-0170-1.txt	2016/06/08 02:16:07	1.7
+++ ai12s/ai12-0170-1.txt	2016/07/22 04:34:05	1.8
@@ -1,8 +1,9 @@
-!standard 3.9.3(7)                                   16-06-04  AI12-0170-1/03
+!standard 3.9.3(7)                                   16-07-21  AI12-0170-1/04
 !standard 6.1.1(7/4)
 !standard 6.1.1(18.2/4)
-!standard 7.3.2(5/4)
 !class binding interpretation 15-06-17
+!status Amendment 1-2012 16-07-21
+!status ARG Approved 9-0-2  16-06-11
 !status work item 15-06-17
 !status received 15-06-15
 !priority Low
@@ -78,18 +79,6 @@
 descendant of T {Redundant[(including T itself)]}. The corresponding expression
 is constructed from the associated expression as follows:
 
-Modify 7.3.2(5/4):
-
-Within an invariant expression, the identifier of the first subtype of the
-associated type denotes the current instance of the type. Within an invariant
-expression for the Type_Invariant aspect of a type T, the type of this current
-instance is T. Within an invariant expression for the Type_Invariant'Class
-aspect of a type T, the type of this current instance is interpreted as though
-it had a (notional) {nonabstract} type NT that is a visible formal derived
-type whose ancestor type is T. The effect of this interpretation is that the
-only operations that can be applied to this current instance are those defined
-for such a formal derived type.
-
 !discussion
 
 The existing wording was essentially correct as written, but we have
@@ -174,9 +163,45 @@
 
 But this isn't allowed because the corresponding expression for Abs_T itself
 is illegal (courtesy of 3.9.3(7)).
+
+!corrigendum 6.1.1(7/4)
 
-[Author's note: We don't seem to define a "corresponding expression" for
-Type_Invariant'Class -- should we?]
+@drepl
+Within the expression for a Pre'Class or Post'Class aspect for a primitive
+subprogram @i<S> of a tagged type @i<T>, a @fa<name> that denotes a formal
+parameter (or @i<S>'Result) of type @i<T> is interpreted as though it
+had a (notional) type @i<NT> that is a formal derived type whose ancestor type
+is @i<T>, with directly visible primitive operations. Similarly, a @fa<name>
+that denotes a formal access parameter (or @i<S>'Result) of type access-to-@i<T>
+is interpreted as having type access-to-@i<NT>. The result of this
+interpretation is that the only operations that can be applied to such
+@fa<name>s are those defined for such a formal derived type.
+@dby
+Within the expression for a Pre'Class or Post'Class aspect for a primitive
+subprogram @i<S> of a tagged type @i<T>, a @fa<name> that denotes a formal
+parameter (or @i<S>'Result) of type @i<T> is interpreted as though it had a
+(notional) nonabstract type @i<NT> that is a formal derived type whose ancestor
+type is @i<T>, with directly visible primitive operations. Similarly, a @fa<name>
+that denotes a formal access parameter (or @i<S>'Result) of type access-to-@i<T>
+is interpreted as having type access-to-@i<NT>. The result of this
+interpretation is that the only operations that can be applied to such
+@fa<name>s are those defined for such a formal derived type.
+
+!corrigendum 6.1.1(18/4)
+
+@drepl
+If a Pre'Class or Post'Class aspect is specified for a primitive
+subprogram @i<S> of a tagged type @i<T>, or such an aspect defaults to
+True, then a corresponding expression also applies to the corresponding
+primitive subprogram @i<S> of each descendant of @i<T>. The @i<corresponding
+expression> is constructed from the associated expression as follows:
+@dby
+If a Pre'Class or Post'Class aspect is specified for a primitive
+subprogram @i<S> of a tagged type @i<T>, or such an aspect defaults to
+True, then a corresponding expression also applies to the corresponding
+primitive subprogram @i<S> of each descendant of @i<T> (including @i<T> itself).
+The @i<corresponding expression> is constructed from the associated expression
+as follows:
 
 !ASIS
 

Questions? Ask the ACAA Technical Agent