09-225 To: J3 From: Malcolm Cohen Subject: Intrinsic assignment glitches Date: 2009 May 06 References: 09-178r1. 1. Introduction Subgroup decided not to pursue the more radical reforms advocated in 09-178r1, but in the course of reviewing that paper found some glitches and poor exposition in the existing text for intrinsic assignment. This paper contains edits to fix those. 2. Glitches The normative text for intrinsic assignment mostly uses the semantic term "the variable" to refer to the variable being assigned to, and occasionally uses the syntax term "". There is a simple rule here: requirements based on the actual syntax being used or affecting the actual syntax use the syntax term, and semantic requirements and effects use the semantic term. However, in the course of time some of the textual changes have resulted in the wrong term being used in a few places. In particular, being a "coindexed object" is a property of the syntax, not the semantics. Being a coarray is a property of the semantics, not the syntax. It is easier to understand it we have separate paragraphs for the syntax requirements vs. the semantic requirements. Splitting these apart also makes it possible to merge some items, for example, item (5) has its "coarray" requirements incorporated into item (1) and its "coindexed object" requirements go into the new coindexed object requirement sentence. Another glitch is that item (10) in the list of requirements is very hard to understand and needs rewording (this is easy after the coindexed object extraction). Finally, the type conformance table has a spurious paragraph number. 3. Edits [155:11] 7.2.1.2 item (1) After "allocatable", insert "and not a coarray". {Amalgamate the semantic part of item (5).} [155:12] Delete item (2) {This will appear, substantially reworded, later.} [155:16] Delete item (5) {Incorporated into item (1) and the new syntax paragraph.} [155:26-26] Item (10), Change "is allocatable ... coindexed object, and" to "is an allocatable noncoarray and". {Much simpler, the coindexed object requirement appears later.} [155:27] 7.2.1.2p2 Delete spurious paragraph number. [155:28-] After the table and before p3, Insert "If is a coindexed object, the variable - shall not be polymorphic, - shall not have an allocatable ultimate component, and - each deferred length type parameter shall have the same value as the corresponding type parameter of ." {New syntax-based requirements are much simpler.} [155:11-26] At the editor's discretion, turn the list into a bullet list. {This is the preferred ISO style unless there is good reason, for example if individual items are referenced elsewhere. If we do reference them elsewhere, the list items will be automatically renumbered.} ===END===