(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