John Colvin <> changed:

           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
      _D4oops15TaggedAlgebraic__T8opEqualsTAxSQBm9JSONValueZQBbMxFQxZb in
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)


Reply via email to