Error: shadowing declaration is deprecated

Bill Baxter dnewsgroup at
Sat Dec 23 22:36:21 PST 2006

jicman wrote:
> Greetings!
> this code,
>   foreach(char[] u; FPUsers)
>   {
>   }
> results in,
> Error: shadowing declaration jic.libs.FPSDK.FindUser.u is deprecated.
> Will anyone explain this to me?  I tried to do a search on it, but I couldn't
> anything related to this.  Found other integer arrays, but nothing about
> char[].  Any help would be greatly appreciated.  Thanks.
> jos�

It means you have another variable named 'u' in the same function 
declared somewhere before that foreach loop.  The theory is that many 
times these are bugs, and when they are they can be hard to spot.

I'm not totally enamored with the feature myself, since I don't recall 
ever really been bitten by it, but I have happily shadowed variables in 
the past when it suited me.  Especially little dummy counter/placeholder 
variables like your 'c' above.

But anyway, that's what the error means.  Just rename 'c' to c2 or cc or d.

More information about the Digitalmars-d-learn mailing list