Annoyance: 'Shadowing declaration is deprecated'+ mixins
    Bill Baxter 
    dnewsgroup at billbaxter.com
       
    Tue Jul 24 11:01:25 PDT 2007
    
    
  
Don Clugston wrote:
> Is there any chance of getting the 'shadowing declaration is deprecated' 
> error message disabled, for code inserted via a mixin?
> 
> It means that if you inject a 'for' loop into the current function, it 
> appears to work, but will fail if another variable with the same name 
> already exists.
> 
> void main()
> {
> // double i=300.0;
>    mixin("for (int i=0; i<10; ++i) { func(i); }");
> }
> 
> When such code is generated by a mixin, the shadowing does not indicate 
> a probable error.
> 
> This is proving to be quite annoying for my BLADE rewrite.
I guess one obvious solution is to give your counter variables some 
names that are more likely to be unique:
     mixin("for (int __i8473=0; __i8473<10; ++__i8473) { func(__i8473); }");
--bb
    
    
More information about the Digitalmars-d
mailing list