CVS difference for 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