CVS difference for ais/ai-00196.txt

Differences between 1.5 and version 1.6
Log of other versions for file ais/ai-00196.txt

--- ais/ai-00196.txt	2002/05/25 03:42:17	1.5
+++ ais/ai-00196.txt	2002/07/23 01:05:23	1.6
@@ -1,4 +1,4 @@
-!standard 03.09.02 (17)                               01-10-08  AI95-00196/01
+!standard 03.09.02 (17)                               02-06-19  AI95-00196/02
 !class binding interpretation 98-03-27
 !status work item 01-10-08
 !status received 98-03-27
@@ -8,18 +8,19 @@
 
 !summary
 
+For the assignment of a tag-indeterminate dispatching call to a target
+of a class-wide type, the controlling tag value for the call is defined
+by the tag of the target. This case is addressed by the addition of a
+rule following paragraph 3.9.2(18).
+
 Paragraphs 3.9.2(17-19) are also intended to apply to dispatching calls
-with no controlling operands. For the case of a dispatching call with
-a controlling result all of whose controlling operands (if any) are
-tag-indeterminate and that appears as the right-hand side of an
-assignment to a class-wide target, the controlling tag value is
-defined by the tag of the target.
+with no controlling operands.
 
 !question
 
 The wording of 3.9.2(17), in the context of the preceding paragraphs,
-makes it unclear that the definition of "controlling tag value" applies
-to a primitive function having controlling operands.
+makes it unclear whether the definition of "controlling tag value" applies
+to a primitive function having no controlling operands.
 
 Was 3.9.2(17) intended to mean "If all of the controlling operands
 (if any) are tag-indeterminate,..."?  (Yes.)
@@ -82,12 +83,50 @@
 
 !wording
 
+Change 3.9.2(17) to read:
+
+If all of the controlling operands (if any) are tag-indeterminate, then:
+
+Insert a paragraph after 3.9.2(18) that reads:
 
+If the call has a controlling result and is the (possibly parenthesized
+or qualified) expression of an assignment statement whose target is
+of a class-wide type, then its controlling tag value is determined by
+the target;
+
 !discussion
 
+Based on 5.2(9), it's clear that the controlling tag for a tag-indeterminate
+expression assigned to a class-wide target is intended to determined by the
+tag of the target object.  It was an oversight not to specify this case
+in 3.9.2.
+
+It was also intended that the rules of 3.9.2(17-19) apply to a call to a
+dispatching operation which has a controlling result and no controlling
+operands.  This is more in the nature of a confirmation, but might be
+made clearer by the addition of the phrase "if any" in 3.9.2(17), as occurs
+in the definition of tag-indeterminate names and expressions (cf. 3.9.2(6)).
 
 !corrigendum 03.09.02(17)
 
+@drepl
+If all of the controlling operands are tag-indeterminate, then:
+@dby
+If all of the controlling operands (if any) are tag-indeterminate, then:
+
+!corrigendum 03.09.02(18)
+
+@dinsa
+@xbullet<If the call has a controlling result and is itself a (possibly
+parenthesized or qualified) controlling operand of an enclosing call on a
+dispatching operation of type @i<T>, then its controlling tag value is determined
+by the controlling tag value of this enclosing call;>
+@dinst
+@xbullet<If the call has a controlling result and is the (possibly
+parenthesized or qualified) expression of an assignment statement whose
+target is of a class-wide type, then its controlling tag value is determined
+by the target;
+
 !ACATS test
 
 !appendix
@@ -190,5 +229,21 @@
   Ft. Lauderdale FL 33309              |               Sparta, MI 49345-1324
   Ph: +1 (954) 974-1700                |               Ph: +1 (616) 887-5431
 ______________________________________________________________________________
+
+****************************************************************
+
+From: Gary Dismukes
+Sent: Wednesday, June 19, 2002 1:48 AM
+
+Here's a revision of AI-196 that revises the summary and adds text to
+the !wording and !discussion sections (plus a small but semantically
+significant correction to the first paragraph of the !question section).
+
+I realize this may be too late to add to the agenda for the upcoming
+meeting, but wanted to get this homework assignment out of the way.
+Hope you all have a productive meeting this week and sorry that I
+won't be able to join you.
+
+[Editor's note: This is version 2.]
 
 ****************************************************************

Questions? Ask the ACAA Technical Agent