digitalmars.D.bugs - [Issue 4679] New: Problem with final & override
- d-bugmail puremagic.com (35/35) Aug 19 2010 http://d.puremagic.com/issues/show_bug.cgi?id=4679
- d-bugmail puremagic.com (17/17) Aug 19 2010 http://d.puremagic.com/issues/show_bug.cgi?id=4679
- d-bugmail puremagic.com (13/13) Oct 21 2012 http://d.puremagic.com/issues/show_bug.cgi?id=4679
http://d.puremagic.com/issues/show_bug.cgi?id=4679 Summary: Problem with final & override Product: D Version: D2 Platform: x86 OS/Version: Windows Status: NEW Severity: normal Priority: P2 Component: DMD AssignedTo: nobody puremagic.com ReportedBy: bearophile_hugs eml.cc This D2 program compiles and runs with DMD 2.048 with no errors: import std.c.stdio: puts; class Base { this() { foo(); } private void foo() { puts("Base.foo"); } // called } class Derived : Base { private override void foo() { // not called puts("Derived.foo"); super.foo(); } } void main() { auto d = new Derived(); } Output: Base.foo If Base.foo() is private then it's final. Then what is Derived.foo() overriding? -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Aug 19 2010
http://d.puremagic.com/issues/show_bug.cgi?id=4679 Jonathan M Davis <jmdavisProg gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |jmdavisProg gmail.com 15:39:49 PDT --- The fact that private has anything to do with final is arguably a bug. It certainly contradicts TDPL. The bug on that is http://d.puremagic.com/issues/show_bug.cgi?id=4542 Now, this is still a bug. Either dmd still makes private final, at which point overriding the method should be a bug, or it follows TDPL and does not make it final, at which point, the derived method should be called, which it isn't. So, derived method rather than making overriding the method an error. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Aug 19 2010
http://d.puremagic.com/issues/show_bug.cgi?id=4679 Andrej Mitrovic <andrej.mitrovich gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED CC| |andrej.mitrovich gmail.com Resolution| |FIXED 21:28:55 PDT --- Private methods are now final by default and OP sample errors. Whether or not that will change (probably not) depends on Issue 4542. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Oct 21 2012