digitalmars.D.bugs - [Issue 3836] New: obligatory override attribute
- d-bugmail puremagic.com (38/38) Feb 18 2010 http://d.puremagic.com/issues/show_bug.cgi?id=3836
- d-bugmail puremagic.com (12/12) Mar 22 2011 http://d.puremagic.com/issues/show_bug.cgi?id=3836
- d-bugmail puremagic.com (18/18) Apr 26 2011 http://d.puremagic.com/issues/show_bug.cgi?id=3836
- d-bugmail puremagic.com (6/6) Apr 26 2011 http://d.puremagic.com/issues/show_bug.cgi?id=3836
- d-bugmail puremagic.com (7/8) Apr 26 2011 http://d.puremagic.com/issues/show_bug.cgi?id=3836
- d-bugmail puremagic.com (19/19) Apr 26 2011 http://d.puremagic.com/issues/show_bug.cgi?id=3836
- d-bugmail puremagic.com (6/6) Apr 26 2011 http://d.puremagic.com/issues/show_bug.cgi?id=3836
- d-bugmail puremagic.com (11/11) Jun 17 2011 http://d.puremagic.com/issues/show_bug.cgi?id=3836
- d-bugmail puremagic.com (13/13) Oct 09 2011 http://d.puremagic.com/issues/show_bug.cgi?id=3836
- d-bugmail puremagic.com (7/12) Oct 09 2011 http://d.puremagic.com/issues/show_bug.cgi?id=3836
- d-bugmail puremagic.com (7/7) Oct 19 2011 http://d.puremagic.com/issues/show_bug.cgi?id=3836
- d-bugmail puremagic.com (16/16) Feb 28 2012 http://d.puremagic.com/issues/show_bug.cgi?id=3836
- d-bugmail puremagic.com (13/13) Sep 25 2012 http://d.puremagic.com/issues/show_bug.cgi?id=3836
- d-bugmail puremagic.com (9/9) Sep 25 2012 http://d.puremagic.com/issues/show_bug.cgi?id=3836
http://d.puremagic.com/issues/show_bug.cgi?id=3836 Summary: obligatory override attribute Product: D Version: 2.040 Platform: Other OS/Version: Windows Status: NEW Severity: normal Priority: P2 Component: DMD AssignedTo: nobody puremagic.com ReportedBy: bearophile_hugs eml.cc override attribute is better to become obligatory (even when no -w is used) as import std.stdio; class Dog { public static void bark() { writeln("woof "); } } class Basenji : Dog { public static void bark() {} } void main() { Dog woofer = new Dog(); Dog nipper = new Basenji(); woofer.bark(); nipper.bark(); } If the programmer knows that override is present if and only if a method override another one, then this code can't be ambiguous. (I think in C++ the obligatory override attribute is less necessary because methods are not virtual by default, so only if you add an explicit "virtual" a method can be overriden). -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Feb 18 2010
http://d.puremagic.com/issues/show_bug.cgi?id=3836 Jonathan M Davis <jmdavisProg gmx.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |jmdavisProg gmx.com Summary|obligatory override |[TDPL] obligatory override |attribute |attribute PDT --- override is obligatory according to TDPL. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Mar 22 2011
http://d.puremagic.com/issues/show_bug.cgi?id=3836 How do you compile this with "-w" (warnings on) (reduced from code by Benjamin Thaut)? class Foo(T, R...) : Foo!R { void bar() { super.bar(); } } class Foo(T){ void bar() {} } void main() { new Foo!(int, float)(); } -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Apr 26 2011
http://d.puremagic.com/issues/show_bug.cgi?id=3836 PDT --- You add override to the subclass' bar function's signature. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Apr 26 2011
http://d.puremagic.com/issues/show_bug.cgi?id=3836You add override to the subclass' bar function's signature.Do you want to show me the code that compiles with -w? -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Apr 26 2011
http://d.puremagic.com/issues/show_bug.cgi?id=3836 PDT --- class Foo(T, R...) : Foo!R { override void bar() { super.bar(); } } class Foo(T){ void bar() {} } void main() { new Foo!(int, float)(); } I don't see what's so confusing about that. Per -w (and per TDPL) any time that you override a function, you need to put the override attribute on the version in the subclass. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Apr 26 2011
http://d.puremagic.com/issues/show_bug.cgi?id=3836 I was about to write an answer like yours, sorry :-) -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Apr 26 2011
http://d.puremagic.com/issues/show_bug.cgi?id=3836 yebblies <yebblies gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords| |patch CC| |yebblies gmail.com https://github.com/D-Programming-Language/dmd/pull/136 -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Jun 17 2011
http://d.puremagic.com/issues/show_bug.cgi?id=3836 Walter Bright <bugzilla digitalmars.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |bugzilla digitalmars.com 11:18:16 PDT --- The reason this is marked as a warning is to not break existing code without providing a long transition period for users. The next step will be to make it deprecated, and then an error. I'll merge all the test case patches, but not the func.c change. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Oct 09 2011
http://d.puremagic.com/issues/show_bug.cgi?id=3836The reason this is marked as a warning is to not break existing code without providing a long transition period for users. The next step will be to make it deprecated, and then an error. I'll merge all the test case patches, but not the func.c change.I understand. It will take a year or more. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Oct 09 2011
http://d.puremagic.com/issues/show_bug.cgi?id=3836 Patch to make it deprecated: https://github.com/D-Programming-Language/dmd/pull/462 -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Oct 19 2011
http://d.puremagic.com/issues/show_bug.cgi?id=3836 Stewart Gordon <smjg iname.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |smjg iname.com http://dlang.org/hijack.html "The D solution is straightforward. If a function in a derived class overrides a function in a base class, it must use the storage class override. If it overrides without using the override storage class it's an error. If it uses the override storage class without overriding anything, it's an error." Though I'm not sure the term "storage class" is correct here. And there's no mention of obligatory override on attribute.html. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Feb 28 2012
http://d.puremagic.com/issues/show_bug.cgi?id=3836 Commits pushed to master at https://github.com/D-Programming-Language/dmd https://github.com/D-Programming-Language/dmd/commit/d6d3ed2527981df536e2e6b3f7d313bbf2f52cd1 Fix Issue 3836 - [TDPL] obligatory override attribute Move requiring the override attribute to the next stage, from warning to deprecated. https://github.com/D-Programming-Language/dmd/commit/262583955e55f03f970af130590225b898164ae0 Issue 3836 - [TDPL] obligatory override attribute -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Sep 25 2012
http://d.puremagic.com/issues/show_bug.cgi?id=3836 Kenji Hara <k.hara.pg gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |FIXED -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Sep 25 2012