[Issue 18267] array comparison broken in 2.078.3
https://issues.dlang.org/show_bug.cgi?id=18267 John Colvin changed: What|Removed |Added Status|RESOLVED|REOPENED Resolution|FIXED |--- --- Comment #6 from John Colvin --- Atila's original example still fails with dmd master --
[Issue 18267] array comparison broken in 2.078.3
https://issues.dlang.org/show_bug.cgi?id=18267 RazvanN changed: What|Removed |Added Status|NEW |RESOLVED CC||razvan.nitu1...@gmail.com Resolution|--- |FIXED --- Comment #5 from RazvanN --- This seems to have been fix as I cannot reproduce the example provided by John Colvin. --
[Issue 18267] array comparison broken in 2.078.3
https://issues.dlang.org/show_bug.cgi?id=18267 feklushkin.de...@gmail.com changed: What|Removed |Added CC|feklushkin.de...@gmail.com | --
[Issue 18267] array comparison broken in 2.078.3
https://issues.dlang.org/show_bug.cgi?id=18267 feklushkin.de...@gmail.com changed: What|Removed |Added CC||feklushkin.de...@gmail.com --
[Issue 18267] array comparison broken in 2.078.3
https://issues.dlang.org/show_bug.cgi?id=18267 Mike Franklinchanged: What|Removed |Added CC||slavo5...@yahoo.com --- Comment #4 from Mike Franklin --- Attributing `opEquals` with `nothrow` resolves the linker error: struct S { P payload; alias payload this; } struct P { auto opEquals(T)(T other) const nothrow //*** Needs nothrow ***/ { static assert(is(typeof(performOp!(S[], T; return const(S[]).init == other; } } bool performOp(T, A)(T value, A arg) { return value == arg; } --
[Issue 18267] array comparison broken in 2.078.3
https://issues.dlang.org/show_bug.cgi?id=18267 John Colvinchanged: What|Removed |Added Keywords||industry Summary|Linker errors compiling |array comparison broken in |std_data_json dub package |2.078.3 |with dmd 2.078.0| --- Comment #3 from John Colvin --- Here is a standalone file that demonstrates what I think is a symptom of the same bug: % cat oops.d struct JSONValue { TaggedAlgebraic payload; alias payload this; } struct TaggedAlgebraic { auto opEquals(T)(T other) const { static assert(is(typeof(performOp!(JSONValue[], T; return const(JSONValue[]).init == other; } } bool performOp(T, A)(T value, A arg) { return value == arg; } % dmd oops.d Undefined symbols for architecture x86_64: "_D6object__T8__equalsTxS4oops9JSONValueTxQsZQBgFNbAxQBdQfZb", referenced from: _D4oops15TaggedAlgebraic__T8opEqualsTAxSQBm9JSONValueZQBbMxFQxZb in oops.o ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation) --