Adam D. Ruppe:
D normally lets locals shadow globals silently - if you had
int g;
void main() {
int g;
}
that's ok normally so it isn't specific to with. This is a good
thing because it means adding a variable elsewhere won't
annoyingly break your functions.
You could argue that doing it on structs is a little harder to
keep track of than regular locals, but, meh.
I try to minimize (possibly to zero) the number of global
variables/constants, but I have had some troubles caused by
silent shadowing of global names by local names in functions.
Having global variables with the same name of local variables is
sometimes a source for troubles, so I try to keep their name
distinct. But I'd like D to spot such duplications (shadowing of
a global) for me.
Bye,
bearophile