***** D method override mechanisms borked ******

kris foo at bar.com
Sat Jun 24 11:11:23 PDT 2006


Used to be that overriding methods in subclasses had some logic to it. 
Now? Well, who knows:

1) you can override a protected method and make it public. Doh!

2) you can override a public method and make it private ... ok, but get 
this -- the overload is not virtual -- it doesn't "actually" overload at 
all. Very sneaky bug in the making, especially when the base class is 
altered just slightly.

3) to fix #2 let's use the override keyword! Yay! That will ensure we're 
actually overriding the base class method instance! Well, it compiles, 
but does *not* override. Bork Bork Bork.

And so on, ad infinitum.

This was not a problem at some distant point in the past. Now the rules 
are (a) too murky for this simple dude to even comprehend and (b) 
apparently thoroughly broken. The behaviour turns D into a land-mine for 
both the unwary and for the seasoned professional. How to turn people 
away from D in one easy lesson.

Please, please, please revert whatever cleverness was injected there and 
make it work in a clear, precise, /obvious/, and above all, *dependable* 
manner. Heck, make the "override" keyword mandatory if you need to. The 
latter should at least work, or cause a compie-time error.





More information about the Digitalmars-d-bugs mailing list