blob: 5fc3bbf8e575e4d205595a8feed79be6fbddfad0 [file] [log] [blame]
/*
TEST_OUTPUT:
---
fail_compilation/fail297.d(30): Error: incompatible types for `(Bar()) + (baz())`: `Bar` and `const(Bar)`
---
*/
// https://issues.dlang.org/show_bug.cgi?id=1969
// ICE(cod1.c) using undefined operator with one const operand
// ICE or wrong-code. D2 only. Internal error: backend\cod1.c 1673
/* Root cause: BinExp::typeCombine() is checking for an _exact_ match, but
typeMerge() will return success.
PATCH: cast.c BinExp::typeCombine().
Compare the immutable versions of the types, instead of the types themselves.
if (op == TOKmin || op == TOKadd)
{
if (t1->ito == t2->ito && (t1->ty == Tstruct || t1->ty == Tclass))
goto Lerror;
}
*/
struct Bar {}
const(Bar) baz() { return Bar(); }
void foo()
{
Bar result = Bar() + baz();
}