[Issue 7460] New: std.windows.registry reports a false exception message
http://d.puremagic.com/issues/show_bug.cgi?id=7460 Summary: std.windows.registry reports a false exception message Product: D Version: D1 D2 Platform: All OS/Version: Windows Status: NEW Severity: normal Priority: P2 Component: Phobos AssignedTo: nob...@puremagic.com ReportedBy: kekeni...@yahoo.co.jp --- Comment #0 from kekeni...@yahoo.co.jp 2012-02-08 00:43:09 PST --- When a registry operation failed, the generated exception's msg property contains '(0)'(means Non Error) instead of its Win32 Error Code. Such as: import std.windows.registry; import std.stdio, std.string; void main() { try { Registry.currentUser.getKey(TEST_NONEXISTKEY); } catch (RegistryException e) { std.stdio.writeln( error=, e.error, :, e.msg ); assert( e.error == 2);// 2=ERROR_FILE_NOT_FOUND assert( std.string.indexOf(e.msg, (0)) == -1 ); // 0=ERROR_SUCCESS assert( std.string.indexOf(e.msg, (2)) != -1 ); // 2=ERROR_FILE_NOT_FOUND } } -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 7460] std.windows.registry reports a false exception message
http://d.puremagic.com/issues/show_bug.cgi?id=7460 --- Comment #1 from kekeni...@yahoo.co.jp 2012-02-08 02:10:09 PST --- In D1, the msg property is in a different format so it does not contains the error code. However, some operations still contain wrong messages. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 7461] New: Broken link
http://d.puremagic.com/issues/show_bug.cgi?id=7461 Summary: Broken link Product: D Version: unspecified Platform: All OS/Version: All Status: NEW Severity: trivial Priority: P2 Component: websites AssignedTo: nob...@puremagic.com ReportedBy: danas.mikelins...@gmail.com --- Comment #0 from danas.mikelins...@gmail.com 2012-02-08 03:01:44 PST --- In http://www.d-programming-language.org/phobos/index.html; there are broken links - links which point to non existing pages (user gets 404 Not Found page) This issue is with following items in std: Core library modules section: std.boxer std.bitarray std.bind std.gc std.recls They have links to pages (listed in same order) http://www.d-programming-language.org/phobos/std_boxer.html http://www.d-programming-language.org/phobos/std_bitarray.html http://www.d-programming-language.org/phobos/std_bind.html http://www.d-programming-language.org/phobos/std_gc.html http://www.d-programming-language.org/phobos/std_recls.html I checked only std: Core library modules so, there could be more broken links in other sections -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 6780] Templated global property functions do not work
http://d.puremagic.com/issues/show_bug.cgi?id=6780 Andrej Mitrovic andrej.mitrov...@gmail.com changed: What|Removed |Added CC||andrej.mitrov...@gmail.com --- Comment #3 from Andrej Mitrovic andrej.mitrov...@gmail.com 2012-02-08 03:30:16 PST --- This seems to contradict Issue 3204? -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 7462] New: Error message with _error_ in overridden function
http://d.puremagic.com/issues/show_bug.cgi?id=7462 Summary: Error message with _error_ in overridden function Product: D Version: D1 D2 Platform: All OS/Version: All Status: NEW Severity: minor Priority: P2 Component: DMD AssignedTo: nob...@puremagic.com ReportedBy: clugd...@yahoo.com.au --- Comment #0 from Don clugd...@yahoo.com.au 2012-02-08 06:26:48 PST --- class A { void foo(){} } class B : A { garbage foo() {} } bug.d(9): Error: undefined identifier garbage bug.d(9): Error: function bug.B.foo of type _error_() overrides but is not covariant with bug.A.foo of type void() -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 7463] New: Duplicated error message with bad template value parameter
http://d.puremagic.com/issues/show_bug.cgi?id=7463 Summary: Duplicated error message with bad template value parameter Product: D Version: D1 D2 Platform: All OS/Version: All Status: NEW Severity: normal Priority: P2 Component: DMD AssignedTo: nob...@puremagic.com ReportedBy: clugd...@yahoo.com.au --- Comment #0 from Don clugd...@yahoo.com.au 2012-02-08 06:49:18 PST --- template foo(Undefined x) {} gives duplicate errors. Caused by TemplateValueParameter::semantic() in template.c (The simple solution of leaving that function if sparam-type == Type::terror doesn't quite work because it causes failures in xtest46 for bug 6295). -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 7463] Duplicated error message with bad template value parameter
http://d.puremagic.com/issues/show_bug.cgi?id=7463 Don clugd...@yahoo.com.au changed: What|Removed |Added Keywords||diagnostic Severity|normal |minor -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 6650] ICE(glue.c): type inference of invalid template instantiation from is(typeof())
http://d.puremagic.com/issues/show_bug.cgi?id=6650 Don clugd...@yahoo.com.au changed: What|Removed |Added Status|NEW |RESOLVED Resolution||FIXED --- Comment #1 from Don clugd...@yahoo.com.au 2012-02-08 06:50:35 PST --- This was fixed in DMD2.056, commit 8ed5854. Test case is in the test suite. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 1623] Overloading on different parameters numbers gratuitously restrictive.
http://d.puremagic.com/issues/show_bug.cgi?id=1623 Don clugd...@yahoo.com.au changed: What|Removed |Added Status|NEW |RESOLVED CC||clugd...@yahoo.com.au Resolution||FIXED --- Comment #5 from Don clugd...@yahoo.com.au 2012-02-08 06:54:34 PST --- The test case in comment 2 was fixed in DMD2.049 when bug 4430 was fixed. That seems to be the only valid test case in this bug report. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 7426] Inner struct no size yet for forward reference when using .tupleof inside it.
http://d.puremagic.com/issues/show_bug.cgi?id=7426 David Simcha dsim...@yahoo.com changed: What|Removed |Added Status|NEW |RESOLVED Resolution||FIXED --- Comment #7 from David Simcha dsim...@yahoo.com 2012-02-08 08:49:24 PST --- (In reply to comment #6) Still broken with my test case. Where do we draw the line between regressions and non-regressions? 2.058 has a lot of borderline cases where internal changes in the compiler make pre-existing bugs affect code they didn't used to affect. From discussion on the Phobos newsgroup, my test case shouldn't work because X.tupleof shouldn't be defined, if X is not fully defined yet. I'll close this bug report as fixed but start a new one requesting a decent error message so it's clearer that this is why it doesn't work. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 7464] New: Better Error Message When Using S.tupleof within S
http://d.puremagic.com/issues/show_bug.cgi?id=7464 Summary: Better Error Message When Using S.tupleof within S Product: D Version: unspecified Platform: All OS/Version: All Status: NEW Keywords: diagnostic Severity: normal Priority: P2 Component: DMD AssignedTo: nob...@puremagic.com ReportedBy: dsim...@yahoo.com --- Comment #0 from David Simcha dsim...@yahoo.com 2012-02-08 08:54:45 PST --- struct S { static if(hasIndirections!(typeof(this))) {} } template hasIndirections(T) { enum hasIndirections = hasIndirectionsImpl!(typeof(T.init.tupleof)); } template hasIndirectionsImpl(T...) { static if (!T.length) { enum hasIndirectionsImpl = false; } else { enum hasIndirectionsImpl = true; } } This is wrong because S isn't fully defined yet, so S.init.tupleof makes no sense. However, the error message is extremely obtuse: Error: struct S no size yet for forward reference -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 1824] Object not const correct
http://d.puremagic.com/issues/show_bug.cgi?id=1824 Stewart Gordon s...@iname.com changed: What|Removed |Added Keywords|patch |pull CC||s...@iname.com --- Comment #12 from Stewart Gordon s...@iname.com 2012-02-08 09:13:29 PST --- Any chance of this being folded in for the upcoming 2.058 release? I am working on porting my libraries to D2, and it would be good to have this done and dusted so that I don't have to work around it. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 7451] [Git regression] AAs broken for interfaces keys and values with opEquals
http://d.puremagic.com/issues/show_bug.cgi?id=7451 --- Comment #3 from klickverbot c...@klickverbot.at 2012-02-08 09:36:10 PST --- The question is whether interfaces can be used as AA keys. They could in 2.057 and before, and can't quite now, hence I marked it as regression. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 1824] Object not const correct
http://d.puremagic.com/issues/show_bug.cgi?id=1824 --- Comment #13 from Steven Schveighoffer schvei...@yahoo.com 2012-02-08 10:24:14 PST --- (In reply to comment #12) Any chance of this being folded in for the upcoming 2.058 release? Likely not. I think only fixing regressions is allowed right now. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 3754] Templates related bug
http://d.puremagic.com/issues/show_bug.cgi?id=3754 Don clugd...@yahoo.com.au changed: What|Removed |Added CC||clugd...@yahoo.com.au Resolution|WORKSFORME |FIXED --- Comment #2 from Don clugd...@yahoo.com.au 2012-02-08 12:05:40 PST --- It was fixed in 1.069. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 7370] Major errors in the FAQ
http://d.puremagic.com/issues/show_bug.cgi?id=7370 Don clugd...@yahoo.com.au 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: ---
[Issue 1824] Object not const correct
http://d.puremagic.com/issues/show_bug.cgi?id=1824 Walter Bright bugzi...@digitalmars.com changed: What|Removed |Added CC||bugzi...@digitalmars.com --- Comment #14 from Walter Bright bugzi...@digitalmars.com 2012-02-08 12:40:03 PST --- I intend to deal with this at the beginning of the next release cycle. It is a disruptive change. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 7465] New: Duplicate error message for bad template mixin
http://d.puremagic.com/issues/show_bug.cgi?id=7465 Summary: Duplicate error message for bad template mixin Product: D Version: D1 D2 Platform: All OS/Version: All Status: NEW Severity: minor Priority: P2 Component: DMD AssignedTo: nob...@puremagic.com ReportedBy: clugd...@yahoo.com.au --- Comment #0 from Don clugd...@yahoo.com.au 2012-02-08 13:31:54 PST --- From the test suite, fail10.d template Foo(alias b){} mixin Foo!(y) y; crash.d(2): Error: mixin crash.Foo!(y) cannot resolve forward reference crash.d(2): Error: mixin crash.Foo!(y) cannot resolve forward reference -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 7466] New: Error without line number in recursive template expansion
http://d.puremagic.com/issues/show_bug.cgi?id=7466 Summary: Error without line number in recursive template expansion Product: D Version: D1 D2 Platform: All OS/Version: All Status: NEW Severity: critical Priority: P2 Component: DMD AssignedTo: nob...@puremagic.com ReportedBy: clugd...@yahoo.com.au --- Comment #0 from Don clugd...@yahoo.com.au 2012-02-08 13:34:16 PST --- This is fail14.d in the test suite. class A(T) { .A!(A) x; } void main() { A!(int); } Error: recursive template expansion for template argument fail14.A!(int).A -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 6699] More cases of __error in error messages
http://d.puremagic.com/issues/show_bug.cgi?id=6699 Don clugd...@yahoo.com.au changed: What|Removed |Added Keywords||diagnostic --- Comment #2 from Don clugd...@yahoo.com.au 2012-02-08 13:42:36 PST --- I created new bugs (bug 7465 and bug 7466) for the fail10 and fail14 cases. Apart from the bug in comment1, which I will call case A, the other known instances of _error are: // CASE B: from bug 6475 (and many other places) alias int b6699; alias b6699.x b6699a; crash.d(2): Error: no property 'x' for type 'int' crash.d(2): Error: alias crash.b6699a cannot alias an expression __error // CASE C: from fail72 void bug6699() { synchronized( foo ){ } } crash.d(3): Error: undefined identifier foo crash.d(3): Error: can only synchronize on class objects, not '_error_' // CASE D: from fail8 and fail123. struct Foo6699 { int x; } enum Bar6699 : Foo6699 { a, b } crash.d(3): Error: cannot implicitly convert expression (0) of type int to Foo66 99 Error: no property 'max' for type 'Foo6699' crash.d(3): Error: Integer constant expression expected instead of (__error) == (__error) See also bug 7462, bug 5302, and bug 6796, which also have _error. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 7467] New: opUnary!++ rejects valid, claiming var has no effect in expression
http://d.puremagic.com/issues/show_bug.cgi?id=7467 Summary: opUnary!++ rejects valid, claiming var has no effect in expression Product: D Version: D2 Platform: All OS/Version: All Status: NEW Severity: normal Priority: P2 Component: DMD AssignedTo: nob...@puremagic.com ReportedBy: reachz...@gmail.com --- Comment #0 from Zach the Mystic reachz...@gmail.com 2012-02-08 15:40:51 PST --- struct Arc { int I = 0; // This is void, but the error appears under all return types void opUnary(string op)() if( op == ++ ) { ++I; } } struct HasArc { Arc myArc; } void main() { import std.stdio; HasArc has; writefln( Arc.I = %s, has.myArc.I); // Arc.I = 0 has.myArc++; // Error: var has no effect in expression (__pitmp1481) // Okay, try this instead: auto UselessVar = has.myArc++; // Works fine writefln( Arc.I = %s, has.myArc.I); // Arc.I = 1 } Obviously the expression has an effect. I was informed by Timon Gehr that This is indeed a bug. The expression is rewritten internally into (pseudo code) (auto __pitmp1481 = has.myArc, has.myArc.opUnary!++(), __pitmp1481); It turns out the work around is so easy, ++has.myArc;. Hopefully the bug fix won't be much harder! Thank you, Zach -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 7468] New: Ddoc does not output DOCTYPE declaration
http://d.puremagic.com/issues/show_bug.cgi?id=7468 Summary: Ddoc does not output DOCTYPE declaration Product: D Version: unspecified Platform: All OS/Version: All Status: NEW Severity: trivial Priority: P2 Component: DMD AssignedTo: nob...@puremagic.com ReportedBy: syntaxcolor...@gmail.com --- Comment #0 from syntaxcolor...@gmail.com 2012-02-08 15:55:16 PST --- Ddoc outputs seemingly valid HTML, except it does not include a DOCTYPE declaration. It should output something like the following at the beginning of every generated file: !DOCTYPE HTML PUBLIC -//W3C//DTD HTML 4.01//EN http://www.w3.org/TR/html4/strict.dtd; -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 4088] opEquals not called on interfaces
http://d.puremagic.com/issues/show_bug.cgi?id=4088 --- Comment #11 from Walter Bright bugzi...@digitalmars.com 2012-02-08 18:42:42 PST --- This is also the root cause of bug 7451. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 4088] opEquals not called on interfaces
http://d.puremagic.com/issues/show_bug.cgi?id=4088 d...@dawgfoto.de changed: What|Removed |Added CC||d...@dawgfoto.de --- Comment #12 from d...@dawgfoto.de 2012-02-08 19:10:45 PST --- It think the proposal in #5459 goes into the right direction. One point of it is to prefer interface opEquals over a downcast. Also, if an interface had an opEquals with a different signature, then Object.opEquals becomes hidden. interface IA { bool opEquals(IA o); } class A { bool opEquals(IA o) { return false; } } -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 4088] opEquals not called on interfaces
http://d.puremagic.com/issues/show_bug.cgi?id=4088 Walter Bright bugzi...@digitalmars.com changed: What|Removed |Added CC||c...@klickverbot.at --- Comment #13 from Walter Bright bugzi...@digitalmars.com 2012-02-08 19:11:04 PST --- *** Issue 7451 has been marked as a duplicate of this issue. *** --- Comment #14 from github-bugzi...@puremagic.com 2012-02-08 19:11:04 PST --- Commit pushed to master at https://github.com/D-Programming-Language/dmd https://github.com/D-Programming-Language/dmd/commit/9c8b88ca89afef97a5d3b81ba7bd65cac71fd6d0 fix Issue 4088 - opEquals not called on interfaces -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 7451] [Git regression] AAs broken for interfaces keys and values with opEquals
http://d.puremagic.com/issues/show_bug.cgi?id=7451 Walter Bright bugzi...@digitalmars.com changed: What|Removed |Added Status|NEW |RESOLVED Resolution||DUPLICATE --- Comment #4 from Walter Bright bugzi...@digitalmars.com 2012-02-08 19:11:03 PST --- *** This issue has been marked as a duplicate of issue 4088 *** -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 4088] opEquals not called on interfaces
http://d.puremagic.com/issues/show_bug.cgi?id=4088 Walter Bright bugzi...@digitalmars.com changed: What|Removed |Added CC||c...@klickverbot.at --- Comment #13 from Walter Bright bugzi...@digitalmars.com 2012-02-08 19:11:04 PST --- *** Issue 7451 has been marked as a duplicate of this issue. *** --- Comment #14 from github-bugzi...@puremagic.com 2012-02-08 19:11:04 PST --- Commit pushed to master at https://github.com/D-Programming-Language/dmd https://github.com/D-Programming-Language/dmd/commit/9c8b88ca89afef97a5d3b81ba7bd65cac71fd6d0 fix Issue 4088 - opEquals not called on interfaces -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 4088] opEquals not called on interfaces
http://d.puremagic.com/issues/show_bug.cgi?id=4088 Walter Bright bugzi...@digitalmars.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: ---
[Issue 4088] opEquals not called on interfaces
http://d.puremagic.com/issues/show_bug.cgi?id=4088 d...@dawgfoto.de changed: What|Removed |Added Status|RESOLVED|REOPENED Resolution|FIXED | --- Comment #15 from d...@dawgfoto.de 2012-02-08 20:04:35 PST --- Reopened because now implicit interface comparison is fixed, but having opEquals in interfaces still doesn't work. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 4088] opEquals not called on interfaces
http://d.puremagic.com/issues/show_bug.cgi?id=4088 --- Comment #16 from Steven Schveighoffer schvei...@yahoo.com 2012-02-08 20:16:23 PST --- Unless the checked-in fix doesn't allow two interfaces to compare, this bug should be closed. It is about the difference between comparing two objects and comparing two interfaces. Prior to this fix, you con't compare two interfaces *period*, even if they defined an identical signature to Object.opEquals. I feel that it should be possible to specialize opEquals for interfaces and objects, but this is a separate problem (and actually an enhancement). IIUC, the applied fix makes it so Objects and interfaces compare in the same way. If I find I can compare two interfaces in the same way I can compare two objects, I'll close this as resolved, and you may open a different bug regarding adding the enhancement of overriding the default behavior of object.opEquals. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 7469] New: template mangling depends on instantiation order
http://d.puremagic.com/issues/show_bug.cgi?id=7469 Summary: template mangling depends on instantiation order Product: D Version: D2 Platform: All OS/Version: All Status: NEW Severity: normal Priority: P2 Component: DMD AssignedTo: nob...@puremagic.com ReportedBy: d...@dawgfoto.de --- Comment #0 from d...@dawgfoto.de 2012-02-08 20:26:03 PST --- bug.d struct Foo(int i) { } version (A) { Foo!3 fooa; Foo!3u foob; } else { Foo!3u fooa; Foo!3 foob; } pragma(msg, typeof(fooa).mangleof); pragma(msg, typeof(foob).mangleof); dmd -c bug.d S3bug11__T3FooVk3Z3Foo S3bug11__T3FooVk3Z3Foo dmd -c -version=A bug.d S3bug11__T3FooVi3Z3Foo S3bug11__T3FooVi3Z3Foo The mangling should depend on the template value parameter type not the type of the argument. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 4088] opEquals not called on interfaces
http://d.puremagic.com/issues/show_bug.cgi?id=4088 Walter Bright bugzi...@digitalmars.com changed: What|Removed |Added Status|REOPENED|RESOLVED Resolution||INVALID --- Comment #17 from Walter Bright bugzi...@digitalmars.com 2012-02-08 22:36:28 PST --- If there's another issue, please open a new bug report, and please provide an example of the failing code. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 7460] std.windows.registry reports a false exception message
http://d.puremagic.com/issues/show_bug.cgi?id=7460 --- Comment #2 from kekeni...@yahoo.co.jp 2012-02-08 22:56:49 PST --- https://github.com/D-Programming-Language/phobos/pull/425 -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 7470] New: opEquals for interfaces
http://d.puremagic.com/issues/show_bug.cgi?id=7470 Summary: opEquals for interfaces Product: D Version: D2 Platform: All OS/Version: All Status: NEW Severity: enhancement Priority: P2 Component: DMD AssignedTo: nob...@puremagic.com ReportedBy: d...@dawgfoto.de --- Comment #0 from d...@dawgfoto.de 2012-02-08 23:41:44 PST --- interface I { int value(); equals_t opEquals(I other); // final opEquals should be allowed too // final equals_t opEquals(I other) { return value() == other.value(); } } class A : I { override int value() { return 0; } override equals_t opEquals(I other) { return value() == other.value(); } } class B : I { override int value() { return 0; } override equals_t opEquals(I other) { return value() == other.value(); } } void main() { I i1 = new A, i2 = new B; assert(i1 == i2); } I think this was the actual issue that Steven filed under bug 4088. Using explicit casts solved compiler generated interface comparison, but doesn't allow a real opEquals for interfaces. Note that opCmp works as expected. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---