[comp.lang.ada] Expanded names and 4.1.3:18

stt@inmet.inmet.com (02/12/91)

Re: Expanded names and 4.1.3:18

In response to a question by Scott Burson (Gyro@Reasoning.COM),
he wonders why subprograms and accept statements are singled out
by paragraphs 18 and 19 of section 4.1.3 dealing with expanded names.

The reason subprograms and accept statements are special is because
their identifier/operator symbol can overload, rather than hide
an outer occurence.  For the other constructs, the name
of the construct always hides an outer declaration of the same
identifer.

The combination of paragraph 18 and 19 implies that
if a prefix of a selected component can be interpreted
as the name of an enclosing subprogram/accept statement,
then it will be (no parameterless call will be considered),
and it is illegal if the name is overloaded by other
enclosing subprograms/accept statements.

As an editorial comment -- this is one of those rules
which was supposed to simplify overload resolution, but
in retrospect, may not have been worth the extra special case.

S. Tucker Taft
Intermetrics, Inc.
Cambridge, MA  02138