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

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

--- ai05s/ai05-0247-1.txt	2011/06/20 04:55:18	1.13
+++ ai05s/ai05-0247-1.txt	2011/08/17 00:24:13	1.14
@@ -8548,3 +8548,128 @@
 => "If a type has an inheritied"
 
 ****************************************************************
+
+From: Tucker Taft
+Sent: Saturday, June 25, 2011  3:43 AM
+
+6.1.1 paras 10-12:
+
+   If a type T inherits homographs from a parent type T1 and a progenitor
+   type T2, and
+
+      * the corresponding primitive subprogram P1 of type T1 is neither null nor abstract; and
+      * a class-wide precondition applies to the corresponding primitive subprogram P2 of
+        T2 that does not fully conform to any class-wide precondition that applies to P1,
+
+   then:
+
+     * If the type is abstract the implicitly declared subprogram P is *abstract*.
+
+     * Otherwise, the subprogram P *requires overriding* and shall be overridden
+       with a nonabstract subprogram.
+
+****************************************************************
+
+From: Tucker Taft
+Sent: Saturday, June 25, 2011  4:00 AM
+
+6.1.1 paras 10-12 again:
+
+   If a type T inherits homographs from a parent type T1 and a progenitor
+   type T2, and
+
+      * the corresponding primitive subprogram P1 of type T1 is neither null nor abstract; and
+      * the class-wide precondition True does not apply to P1; and
+      * a class-wide precondition applies to the corresponding primitive subprogram P2 of
+        T2 that does not fully conform to any class-wide precondition that applies to P1,
+
+   then:
+
+     * If the type T is abstract the implicitly declared subprogram P is *abstract*.
+
+     * Otherwise, the subprogram P *requires overriding* and shall be overridden
+       with a nonabstract subprogram.
+
+****************************************************************
+
+From: Tucker Taft
+Sent: Saturday, June 25, 2011  4:04 AM
+
+6.1.1 paras 10-12 (one more time):
+
+   If a type T has an implicitly declared subprogram P inherited
+   from a parent type T1 and a homograph of P from a
+   progenitor type T2, and
+
+      * the corresponding primitive subprogram P1 of type T1 is neither null nor abstract; and
+      * the class-wide precondition True does not apply to P1; and
+      * a class-wide precondition applies to the corresponding primitive subprogram P2 of
+        T2 that does not fully conform to any class-wide precondition that applies to P1,
+
+   then:
+
+     * If the type T is abstract the implicitly declared subprogram P is *abstract*.
+
+     * Otherwise, the subprogram P *requires overriding* and shall be overridden
+       with a nonabstract subprogram.
+
+****************************************************************
+
+From: Tucker Taft
+Sent: Saturday, June 25, 2011  4:08 AM
+
+6.1.1 (26) and (27):
+
+   For any subprogram or entry call (including dispatching calls), the
+   specific precondition and postcondition checks that are performed are
+   determined by those of the subprogram or entry actually invoked.  The
+   class-wide postcondition check that is performed on a call of a
+   primitive of type T includes class-wide postconditions inherited from
+   progenitors of T [Redundant: , even if the primitive is inherited from
+   a type T1 and these postconditions do not apply to the corresponding
+   primitive of T1].
+
+We now take you to 3.9.2(20.4):
+
+   otherwise, the action is the same as the action for the corresponding operation
+   of the parent type or progenitor type from which the operation was inherited
+   {(except that additional class-wide postconditions may apply -- see 6.1.1)}.
+   If there is more than one such corresponding operation, the action is that for
+   the operation that is not a null procedure, if any; otherwise, the action is that
+   of an arbitrary one of the operations.
+
+Back to 6.1.6(27):
+
+   For a call via an access-to-subprogram value, the class-wide precondition
+   check performed is determined by the subprogram or entry denoted by the prefix of the
+   Access attribute reference that produced the value.
+   In contrast, the class-wide precondition check for other calls to a subprogram
+   or entry consists solely of checking the class-wide preconditions that apply
+   to the denoted entity (not necessarily the one that is invoked).
+
+****************************************************************
+
+From: Tucker Taft
+Sent: Saturday, June 25, 2011  4:27 AM
+
+6.1.1(27) again (now 2 paragraphs):
+
+   The class-wide precondition check for a call to a subprogram
+   or entry consists solely of checking the class-wide preconditions that apply
+   to the denoted callable entity (not necessarily the one that is invoked).
+
+   For a call via an access-to-subprogram value, all precondition and postcondition
+   checks performed are determined by the subprogram or entry denoted by the prefix of the
+   Access attribute reference that produced the value.
+
+****************************************************************
+
+From: Tucker Taft
+Sent: Saturday, June 25, 2011  3:43 AM
+
+****************************************************************
+
+From: Tucker Taft
+Sent: Saturday, June 25, 2011  3:43 AM
+
+****************************************************************

Questions? Ask the ACAA Technical Agent