(j3.2006) Does anybody remember why ...?
Malcolm Cohen
malcolm
Thu Dec 15 21:46:03 EST 2011
>(#) Where a construct entity is declared in a BLOCK construct, we don't
>say the equivalent of [444:21], "is a local identifier ... and any
>entity of the host that has this as its nongeneric name is inaccessible
>by that that name..." -- or at least if we do, I couldn't find where.
This is done by the scoping rules. There is no host association going on!
>16.4p2 [10-007r1:442:18-19] handles the equivalent thing for statement
>entities, but I couldn't find where we do the same thing for construct
>entities.
We don't need to say it because the scopes are already completely determined.
If there is an X outside and an X inside then the scoping rules say the scope of
the X outside is only outside, and the scope of the X inside is only inside. If
there is an X outside and no declared X in the BLOCK the scoping rules say the
scope of X is both inside and outside - that's how inclusive scope works.
We only need to say it in the host association case so that we prevent the
inside and outside entities from becoming associated.
Cheers,
--
................................Malcolm Cohen, Nihon NAG, Tokyo.
More information about the J3
mailing list