dup field in sub-class should be reported by the compiler

Extrawurst spam at extrawurst.org
Mon Aug 13 12:48:51 PDT 2007


i agree, it should be at least a warning for shadowing non-private 
fields of the super class.


sa schrieb:
> == Quote from name (someanon at yahoo.com)'s article
>   
>> http://d.puremagic.com/issues/show_bug.cgi?id=1419
>> Description:  [reply]  	 Opened: 2007-08-13 13:24
>> dupdefbug.d:
>> ================================
>> class A {
>>   int attr;
>> }
>> class B : A {
>>   int attr;
>> }
>> ================================
>> $ dmd.exe -c dupdefbug.d
>> no error reported.
>> It should report B.attr is dup of A.attr.
>> ------- Comment #1 From Walter Bright 2007-08-13 13:34 [reply] -------
>> Why should it be an error? Fields are not accessed virtually, so there is no
>> hijacking problem. The current behavior is as designed.
>> If you feel it should be changed, please start a thread in digitalmars.D and
>> present the case.
>> ==================================================================
>> I think 90% of the time this happens it is a bug, not by the programmer's
>> intention.
>> If it's designed to be so in D, I propose to change it; or at least reported
>> by the compiler.
>>     
>
> This is particularly true in a large system where multiple people working on it,
> the programmer may simply forget what's defined in the super class; and when this
>  cause a program error (most of the time to the programmer's surpise), it may took
> several hours to find.
>
> Since Walter want to discuss this issue on this NG, audience pleaes air your voice.
>   
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.puremagic.com/pipermail/digitalmars-d/attachments/20070813/8f850dee/attachment.html>


More information about the Digitalmars-d mailing list