Shadowing of members

deadalnix deadalnix at gmail.com
Wed Jan 9 19:42:53 PST 2013


On Thursday, 10 January 2013 at 03:38:23 UTC, Jonathan M Davis 
wrote:
> On Thursday, January 10, 2013 04:24:26 deadalnix wrote:
>> This argument can go on and on forever. What about getting some
>> hard data ?
>> 
>> We should start to gather data when considering such issue. 
>> What
>> about adding the warning in some dmd version and trying it on
>> several codebase to get a good view of the impact of such a
>> change ?
>
> 1. Walter has already rejected this idea.
>
> 2. Do you honestly think that it's not incredibly common to 
> declare
> constructor parameters to have the same names as the member 
> variables that
> they go with? Who _doesn't_ do it that way? The only thing that 
> would mitigate
> how often it would be warned about would be how many POD types 
> in D get away
> without needing to define constructor, because one is 
> implicitly declared. It's
> incredibly common practice in C++, Java. C#, etc. to name 
> constructor
> parameters after the member variables that they go with. If 
> anything, it's
> rare _not_ to do that (aside from private member variables 
> often having stuff
> like _ or m_ added to them).
>
> 3. Why on earth would I want the compiler to be warning me 
> about the variable
> names that I pick? No offense. But that's asinine. There are 
> _no_ bugs in code
> like
>
> struct S
> {
>  this(int a, int b)
>  {
>  this.a = a;
>  this.b = b;
>  }
>
>  int a;
>  int b;
> }
>
> There aren't even any _potential_ bugs in that code. It's 
> perfectly sound.
> Warning about something like
>
> a = a;
>
> would make some sense. Warning against a perfectly valid 
> assignment or the
> fact that the variable names happen to be the same is just 
> stupid.
>
> Warning about something which isn't a bug or at least almost a 
> guarantee to be
> a bug is _not_ a valid use of a warning IMHO. You don't have 
> warnings for good
> or bad practice. You have warnings for likely bugs. And I 
> wouldn't even
> consider the struct above to be bad practice anyway.
>
> - Jonathan M Davis

So authority argument worth more than actual data. That is noted.


More information about the Digitalmars-d mailing list