digitalmars.D.bugs - [Issue 2511] New: dmd finds a proper overload as a non-covariant
- d-bugmail puremagic.com (41/41) Dec 13 2008 http://d.puremagic.com/issues/show_bug.cgi?id=2511
- d-bugmail puremagic.com (6/6) Dec 13 2008 http://d.puremagic.com/issues/show_bug.cgi?id=2511
- d-bugmail puremagic.com (23/23) Dec 13 2008 http://d.puremagic.com/issues/show_bug.cgi?id=2511
- d-bugmail puremagic.com (13/13) Apr 13 2009 http://d.puremagic.com/issues/show_bug.cgi?id=2511
- d-bugmail puremagic.com (11/11) Sep 18 2009 http://d.puremagic.com/issues/show_bug.cgi?id=2511
- d-bugmail puremagic.com (22/22) Aug 27 2010 http://d.puremagic.com/issues/show_bug.cgi?id=2511
- d-bugmail puremagic.com (7/7) Aug 27 2010 http://d.puremagic.com/issues/show_bug.cgi?id=2511
- d-bugmail puremagic.com (12/12) Aug 28 2010 http://d.puremagic.com/issues/show_bug.cgi?id=2511
- d-bugmail puremagic.com (18/18) Aug 29 2010 http://d.puremagic.com/issues/show_bug.cgi?id=2511
- d-bugmail puremagic.com (18/18) Aug 29 2010 http://d.puremagic.com/issues/show_bug.cgi?id=2511
- d-bugmail puremagic.com (11/11) Aug 29 2010 http://d.puremagic.com/issues/show_bug.cgi?id=2511
http://d.puremagic.com/issues/show_bug.cgi?id=2511 Summary: dmd finds a proper overload as a non-covariant Product: D Version: 2.021 Platform: PC OS/Version: Windows Status: NEW Keywords: rejects-valid Severity: normal Priority: P2 Component: DMD AssignedTo: bugzilla digitalmars.com ReportedBy: 2korden gmail.com Here is a sample code that triggers an error: // File I.d module I; import Base; interface I { } interface SubI : I { } // File Base.d module Base; import I; class Base { I create() { return null; } } class Derived : Base { SubI create() { return null; } } Compilation options: "dmd I.d" Note that "dmd Base.d" compiles okay. --
Dec 13 2008
http://d.puremagic.com/issues/show_bug.cgi?id=2511 And here is an error message: Base.d(15): function Base.Derived.create of type SubI() overrides but is not covariant with Base.Base.create of type I() --
Dec 13 2008
http://d.puremagic.com/issues/show_bug.cgi?id=2511 2korden gmail.com changed: What |Removed |Added ---------------------------------------------------------------------------- Severity|normal |blocker The error can fixed by removing "import Base;" from the I.d, but unfortunately I can't do this in my application because interfaces have methods that accept and return references to Base and Derived: interface I { void doStuff(Base b); } interface SubI : I { void doStuff(Derived b); } A possible solution is to merge them into a single file (which is not acceptable). You should also have a proper file order to compile them at once: dmd Base I // okay dmd I Base // fails to compile Rising its severity until I find a workaround. --
Dec 13 2008
http://d.puremagic.com/issues/show_bug.cgi?id=2511 smjg iname.com changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |smjg iname.com Summary|dmd finds a proper overload |Covariant return type |as a non-covariant |doesn't work with circular | |import Version|2.021 |1.043 This sounds related to old bug 125. And it occurs in the D1 line too. Also rewriting the summary line as the one that was there was confusing. --
Apr 13 2009
http://d.puremagic.com/issues/show_bug.cgi?id=2511 PDT --- Created an attachment (id=456) better detection if a base class is forward referenced The current implementation (as of DMD 2.032) defers covariance analysis only if the base class is not yet semantically analysed and it is not an interface. The patch refines this condition by testing whether the class has any forward referenced base classes or interfaces. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Sep 18 2009
http://d.puremagic.com/issues/show_bug.cgi?id=2511 Walter Bright <bugzilla digitalmars.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |bugzilla digitalmars.com 22:33:25 PDT --- The patch breaks this code: class UA { A29 f() { return null; } } class UB : UA { B29 f() { return null; } } class A29 { } class B29 : A29 { } -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Aug 27 2010
http://d.puremagic.com/issues/show_bug.cgi?id=2511 22:49:56 PDT --- Partial apply of patch: http://www.dsource.org/projects/dmd/changeset/638 -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Aug 27 2010
http://d.puremagic.com/issues/show_bug.cgi?id=2511 PDT --- Oh, it's only been tested on interfaces. ClassDeclaration::isBaseInfoComplete() is broken, class Object doesn't need a base class: int ClassDeclaration::isBaseInfoComplete() { if (!baseClass) return ident == Id::Object; ... -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Aug 28 2010
http://d.puremagic.com/issues/show_bug.cgi?id=2511 12:55:08 PDT --- This now fails: class UA { A29 f() { return null; } } class UB : UA { B29 f() { return null; } } class A29 { } class B29 : A29 { } -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Aug 29 2010
http://d.puremagic.com/issues/show_bug.cgi?id=2511 Brad Roberts <braddr puremagic.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |braddr puremagic.com --- NOTE: these tests are part of the dmd svn depot these days.. so if you check it out from dsource you can run them yourself cd $(dir}/dmd/src make cd ../test make It's only known to work on linux, though ought to work on any posix system and will need work to work on windows. Any fixes that are required I'd be happy to fold in. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Aug 29 2010
http://d.puremagic.com/issues/show_bug.cgi?id=2511 Walter Bright <bugzilla digitalmars.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |FIXED 14:31:42 PDT --- http://www.dsource.org/projects/dmd/changeset/650 -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Aug 29 2010