"with" should be deprecated with extreme prejudice
Jason House
jason.james.house at gmail.com
Sun May 17 18:20:26 PDT 2009
Andrei Alexandrescu Wrote:
> I think "with" is a very dangerous feature due to the way it hides
> symbols. It essentially makes the feeblest attempt at modular reasoning
> utterly impossible:
>
> int x, y;
> with (whatever)
> {
> y += x;
> ++x;
> }
>
> What can be said about such code? Nothing. If whatever has or will ever
> have fields x or y or both, the names will bind to them; otherwise,
> they'll bind to the locals. Non-local code dependency at its finest.
>
> Maintenance of any type that is being used with "with" becomes a very
> dangerous proposition because it can silently change meaning of code.
>
> I therefore submit that "with" is an extremely dangerous feature and
> should be removed from the language. What say you?
>
>
> Andrei
How about we keep in D's tradition and outlaw shadowing instead? I use "with" rarely, but appreciate it when I do.
More information about the Digitalmars-d
mailing list