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









d-bugmail puremagic.com 