!standard 3.1(6/2) 11-07-20 AI05-0255-1/02 !standard 3.3.1(23) !standard 8.1(4) !class Amendment 11-06-16 !status Amendment 2012 11-07-20 !status ARG Approved 13-0-0 11-06-24 !status work item 11-06-16 !status received 11-04-13 !priority Low !difficulty Easy !subject Missing text about user-defined iterators and quantified expressions !summary !proposal (1) A quantified expression introduces a new way of declaring an identifier (via a loop_parameter_specification or iterator_specification); this means that the rules on declarative regions and scoping have to account for it, but this wasn't done. I've gone through Chapter 8, and I think the only thing that needs to be done is to add, after 8.1(6) [or somewhere else in the list, if preferred]: a quantified_expression. (2) The language has added an iterator_specification, which is used roughly in the same kinds of places that a loop_parameter_specification is allowed and declares an identifier like a loop_parameter_specification does. Thus, in most of the Standard, an iterator_specification should also be dealt with in places where a loop_parameter_specification is mentioned. In particular, iterator_specification needs to be added to 3.1(6). Also, 3.3.1(23) [which is a Note] and AARM sections 8.6(6.a) and 13.3.1(5.b) should include iterator_specification. !wording In 3.1(6/2), add "an iterator_specification" after "a loop_parameter_specification". In 3.3.1(23), add "iterator_specification" after "a loop_parameter_specification". Add after 8.1(4): * a quantified_expression; [This list is roughly in the order of importance of the contents. - Editor] In 13.3.1(4.b/3), add "iterator_specification -- NO". !discussion The AARM Note 8.6(6.a) is just an example, and does not need to list all of these things, so it does not need to be changed. !corrigendum 3.1(6/2) @drepl Each of the following is defined to be a declaration: any @fa; an @fa; a @fa; a @fa; a @fa; a @fa; a @fa; an @fa; an @fa; a @fa; a @fa. In addition, an @fa is a declaration of its @fa. @dby Each of the following is defined to be a declaration: any @fa; an @fa; a @fa; a @fa; a @fa; an @fa; a @fa; a @fa; an @fa; an @fa; a @fa; a @fa. In addition, an @fa is a declaration of its @fa. !corrigendum 3.3.1(23) @drepl @xindent<@s9<8 As indicated above, a stand-alone object is an object declared by an @fa. Similar definitions apply to "stand-alone constant" and "stand-alone variable." A subcomponent of an object is not a stand-alone object, nor is an object that is created by an @fa. An object declared by a @fa, @fa, @fa, @fa, or a @fa is not called a stand-alone object.>> @dby @xindent<@s9<8 As indicated above, a stand-alone object is an object declared by an @fa. Similar definitions apply to "stand-alone constant" and "stand-alone variable." A subcomponent of an object is not a stand-alone object, nor is an object that is created by an @fa. An object declared by a @fa, @fa, @fa, @fa, @fa, or a @fa is not called a stand-alone object.>> !corrigendum 8.1(4) @dinsa @xbullet;> @dinst @xbullet;> !ACATS test None needed. !ASIS No ASIS effect. !appendix !topic Omissions in RM2012 !reference 8.1(6), 3.1(6), 3.3.1(23), AARM 8.6(6.a), 13.3.1(5.b) !from Adam Beneschan 11-04-13 !discussion A couple things I noticed that I think are missing from RM2012: (1) A quantified expression is a new way of declaring an identifier (via a loop_parameter_specification or iterator_specification); this means that the rules on declarative regions and scoping have to account for it, but this wasn't done. I've gone through Chapter 8, and I think the only thing that needs to be done is to add, after 8.1(6) [or somewhere else in the list, if preferred]: a quantified_expression. (2) The language has added an iterator_specification, which is used roughly in the same kinds of places that a loop_parameter_specification is allowed and declares an identifier like a loop_parameter_specification does. Thus, in most of the RM, an iterator_specification should also be dealt with in places where a loop_parameter_specification is mentioned. In particular, iterator_specification needs to be added to 3.1(6). Also, 3.3.1(23) [which is a Note] and AARM sections 8.6(6.a) and 13.3.1(5.b) should include iterator_specification. (I determined this by searching the text files currently available from www.ada-auth.org, which I know aren't quite up to date; so it's possible, but not likely, that there are other instances of loop_parameter_specification that I wasn't able to find.) ****************************************************************