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

Reply via email to