Actual parameter names are evaluated in generi 86-07-23 AI-00365/05 1 | !standard 12.03 (17) 86-07-23 AI-00365/05 | !class binding interpretation 85-07-21 | !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 86-05-09 !status committee-approved (8-0-0) 86-02-20 !status work-item 86-01-24 !status received 85-07-21 !references 83-00583 !topic Actual parameter names are evaluated in generic instantiations !summary 86-01-24 In a generic instantiation, the names appearing as actual parameters are evaluated. !question 86-01-24 The elaboration of a generic instantiation is defined in 12.3(17). The paragraph specifies that Each expression supplied as an explicit generic actual parameter is first evaluated, as well as each expression that appears as a constitutent of a variable name or entry name supplied as an explicit generic actual parameter. This wording does not state that the name of a variable associated with an in out parameter is actually evaluated, i.e., it does not say that the object denoted by such an actual parameter is determined. In particular, consider the variable PTR.all, which contains no expressions at all. Clearly the intent is to require that all expressions be evaluated and that the names of all variables be evaluated, in an order that is not defined by the language. Has some wording been omitted? !recommendation 86-01-24 Each name serving as an actual generic parameter is evaluated when a generic instantiation is elaborated. !discussion 86-01-24 As the question notes, the current wording does not cover the evaluation of names such as PTR.all and C(I) when they serve as an actual in out parameter, but the intent was that the name of a variable serving as an actual in out parameter be evaluated to determine the entity denoted by the name.