!standard 02.08 (05) 99-05-28 AI95-00073/01 !class confirmation 95-07-27 !status WG9 approved 96-12-07 !status ARG approved 9-0-0 96-06-17 !status work item 95-09-29 !status received 95-07-27 !priority Low !difficulty Easy !subject Pragmas are allowed in generic_formal_parts. !summary A pragma is allowed in a generic_formal_part. !question Is a pragma allowed in a generic_formal_part? (Yes.) !response A pragma may appear in a generic_formal_part after a generic_formal_parameter_declaration (by 2.8(6)), or after a use_clause (by both 2.8(6) and 2.8(7)). Note that a generic_formal_part is not a formal_part, according to the syntax rules, so there is no conflict between paragraphs 6 and 7. See also 2.8(8.b). The fact that a pragma may appear in a generic_formal_part is not a change from Ada 83. !ACATS test A C-Test could be written to check that pragmas are allowed in generic formal parts, but this would not have much value by itself. !appendix !section 02.08(05) !subject are pragmas allowed in generic formal parts? !reference RM95-02.08(05) !from Dan Eilers 95-07-13 !reference as: 95-5220.a Dan Eilers 95-7-13>> !discussion RM95 2.8(7) seems to allow pragmas in generic formal parts, because use_clauses are (newly) allowed there. Is this intended? (It would seem reasonable.) If so, it should be added to the list of extensions in chg83.doc. RM95 2.8(6) forbids pragmas in formal_parts. It isn't obvious whether formal_parts are intended to include generic_formal_parts and thus contradict 2.8(7). **************************************************************** !section RM-2.8(07) !subject Pragmas are allowed in generic_formal_parts. !reference AI95-00073 !reference RM95-2.8(7) !from Dan Eilers 95-09-19 !reference as: 95-5298.a Dan Eilers 95-9-19>> !discussion The response to AI95-00073 states: > A pragma may appear in a generic_formal_part after a > generic_formal_parameter_declaration (by 2.8(6)), or after a use_clause > (by both 2.8(6) and 2.8(7)). I assume that the "but not in place of" wording of RM95-2.8(7) does not apply to optional constructs, so a pragma could appear in an otherwise empty generic_formal_part, or before any generic_formal_parameter_declaration or use_clause. ****************************************************************