On Mon, Apr 30, 2012 at 05:47:59PM +0200, bearophile wrote:
> H. S. Teoh:
> 
> >When you have nested with's.
> >
> >Or when the object members shadow local variables in the parent
> >scope.
> >
> >     struct S {
> >             int x;
> >     }
> >
> >     void main() {
> >             int x, y;
> >             S s;
> >
> >             with(s) {
> >                     x = 1;
> >                     y = 2;
> >             }
> >     }
> 
> That code doesn't compile:
> 
> test.d(10): Error: with symbol test.S.x is shadowing local symbol
> test.main.x
[...]

Which means your code is at the mercy of the external library. Upstream
updates a class, and suddenly a whole bunch of code is unnecessarily
broken (if you had just used aliases instead, there would be no
problem).


T

-- 
It is of the new things that men tire --- of fashions and proposals and 
improvements and change. It is the old things that startle and intoxicate. It 
is the old things that are young. -- G.K. Chesterton

Reply via email to