Forcing occurrence of index subtype 86-07-23 AI-00321/02 1 | !standard 13.01 (06) 86-07-23 AI-00321/02 | !class binding interpretation 83-10-30 | !status approved by WG9/AJPO 86-07-22 | !status approved by Director, AJPO 86-07-22 | !status approved by WG9/Ada Board 86-07-22 | !status approved by Ada Board 86-07-22 !status approved by WG9/ADA Board 85-02-26 !status committee-approved 84-11-28 !status work-item 84-11-05 !status received 84-01-29 !references 83-00449 !topic Forcing occurrence of index subtype !summary 85-01-02 A forcing occurrence of the name of an array type or subtype forces the default determination of each index subtype, and similarly, for forcing occurrences of any type or subtype having a subcomponent of such an array type. !question 85-01-02 13.1(6) attempts to prevent uses of an entity before its representation is fully determined by a representation clause or by the full declaration of a private type. The current rules do not seem to cover occurrences of a type as an index subtype: type T is (A, B, C); type ARR is array (T range <>) of INTEGER; OBJ : ARR (A..C); for T use (1, 2, 5); -- legal? ARR does not have any subcomponents of type T; is the use of ARR to declare OBJ nonetheless a forcing occurrence for T? !recommendation 85-01-02 A forcing occurrence of the name of an array type or subtype forces the default determination of each index subtype, and similarly, for forcing occurrences of any type or subtype having a subcomponent of such an array type. !discussion 85-01-02 A review of the motivation for the rule in 13.1(6) shows that forcing occurrences of the name of an array type should be considered forcing occurrences for each index subtype, and similarly for forcing occurrences of the name of a type with subcomponents having such an array type. The current rule is inadequate, since it does not mention index subtypes.