To: J3 Members J3/16-257 From: Van Snyder Subject: Comments on Clause 7 References: 16-007r2 Date: 2016 September 28 1. Edits -------- [59:32-33 7.3.2.2p2] Replace "previously-defined derived type" with "derived type that is previously defined or accessed by use or host association." {"use or" could be left out because Clause 14 says that, but Clause 19 doesn't say that host association implies previous definition or declaration.} [60:25-26 7.3.2.3p2] Replace "previously-defined derived type" with "derived type that is previously defined or accessed by use or host association." {"use or" could be left out because Clause 14 says that, but Clause 19 doesn't say that host association implies previous definition or declaration.} [60:22 7.3.2.3p4] Start a new paragraph before "An unlimited" because it also applies to TYPE(*). [62:15+9 NOTE 7.5] At the end, append a sentence "A program that uses a numeric is unlikely to be portable." {Compare to NOTE 5.5, which probably describes a less-frequent case.} [63:6 7.4.3.2p5] After "DOUBLE PRECISION" insert "or DOUBLEPRECISION". [66:6 C722] After "statement" insert "in a SELECT TYPE construct". [66:10 C724] Replace with two constraints because C724 conflates function characteristics and function result characteristics: "C724 \obs{A function name declared with an asterisk shall not be elemental or pure.} "C724a \obs{The result of a function name declared with an asterisk shall not be an array or a pointer.} [66:11 C725] Append ", and only if a double-colon separator appears in the ." [66:12-13 C726] Delete C726 because of the previous edit. [69:9 7.5.1p7] Replace "order" by "sequence" because 7.5.2.3p1 uses "sequence". [69:13+1-2 NOTE 7.14] Because the same subcomponents appear in the "oldest-child" and "other-kids" components of type "kids" the note obfuscates rather than illuminates. Before "name" insert "the". After "kids" insert "components of the \cf{oldest_child} component". [71:11+13-15 NOTE 7.18] Replace "will necessarily be" with "is necessarily". Replace "will define" with "defines". Replace "will always be" with "is always". {The remaider of the note is in present tense.} [73:20+4,6 NOTE 7.22] After "kind(0.0)" append "! default kind". Before "nondefault" insert "potentially". [75:14 C754] Style is inconsistent with other nearby constraints. Replace with "C754 (R739) If the component is not of type character, * shall not appear." [75:21-24 R742] Alphabetize right-hand sides. Compare to R738. [77:2 7.5.4.4p1] A doesn't contain attributes; it contains keywords. Replace "attribute" with "keyword". [77:3+9-13 NOTE 7.30] Replace "will have" with "has". Delete "to an" {pointer arrays don't point to arrays}. Replace "will be ... allocated" with "is determined when the component is allocated". Replace "could be associated" with "is associated". The revised sentence reads "The size of this target array is determined with the component is allocated (9.7.1) or the pointer component is associated with a target...." [77:6 7.5.4.5p1] After "procedure" insert "(7.5.5)" \ref{D7:Type-bound procedures}. [77:20 7.5.4.6p1] Before "initialized" insert "default". [82:16-20 R752] Alphabetize right-hand sides. Compare to R738. [84:10+5-6 NOTE 7.46] Delete the sentence beginning "The final subroutines..." because it's redundant to 7.5.6.2p1(3), only two inches lower. [84:29 7.5.6.3p1] After "allocatable variable" insert ", or has an allocated allocatable component,". [86:5+6 NOTE 7.53] Replace "A derived" with "An extensible derived". [86:13+2 NOTE 7.54] Improperly specifies requirements. Replace "shall not" with "is not permitted to". [87:2 7.5.7.3p1] After "accessible" insert "specific". [88:29+ C797+] Replace 7.5.10p4 with a more accurate constraint: "C797a (R736) The type specified by shall have been defined previously in the same scoping unit or accessed by use or host association." [89:19 7.5.10p4] Delete the paragraph because of the previous edit. [91:18+3,5 NOTE 7.62] Replace "will use" with "uses". Replace "will be" with "are". [93:26 C7111-] Insert a constraint: "C7110a (R770) The shall not specify an abstract type." [94:13+ 7.8p8+] Insert a note: "NOTE 7.66a The requirement that an be compatible with intrinsic assignment to a variable of the type specified by implies that if an is polymorphic, only its declared-type part is used." 2. Question without edits ------------------------- [60:11 C711] Is there a problem with allowing explicit shape? [69:28 C730] In light of 7.4.3.2p5, which says DOUBLE PRECISION specifies real type, and Table 6.2, is "DOUBLEPRECISION or" necessary in C730? [71:19-20 7.5.2.4p2] Is the sentence about private components redundant? [87:15-16 7.5.7.3p3] How can a binding of an extension be the same binding as a binding of the parent? Isn't a binding to the parent always either inherited or overridden? [93:36 C7115] Isn't it impossible for an to be of abstract type? if so, delete C7115. 3. Remarks ---------- The comma after * in a at [65:33] could (should) be deleted in the next revision.