Module level variable shadowing

bearophile via Digitalmars-d digitalmars-d at puremagic.com
Thu Jun 26 04:59:20 PDT 2014


Walter Bright:

> I suggest that your issues with global variables can be 
> mitigated by adopting a distinct naming convention for your 
> globals. Frankly, I think a global variable named "x" is 
> execrable style - such short names should be reserved for 
> locals.

I don't use names like 'x' for the global variables, that was 
just an artificial example. But I am not yet using a naming 
convention for global variables (like using a "_g" suffix) and 
perhaps I should start using it. But having something enforced by 
the compiler is better.


> D has scoped lookup. Taking your proposal as principle, where 
> do we stop at issuing errors when there is the same identifier 
> in multiple in-scope scopes? I think we hit the sweet spot at 
> restricting shadowing detection to local scopes.

 From the bugs I've had by unwanted shadowing global variables, 
the current spot of D doesn't look very sweet to me.

I'd like D to try some alternative point where to stop issuing 
those errors. I am not convinced the current design is the best 
one. Some kind of error for module-level shadowing could be an 
improvement over the current situation. I can be wrong of course, 
but I think it's a good idea to explore some more this little 
piece of the design space.

Bye,
bearophile


More information about the Digitalmars-d mailing list