diff --git a/compiler/src/dmd/expressionsem.d b/compiler/src/dmd/expressionsem.d index 01462b2cadda..9469ea747668 100644 --- a/compiler/src/dmd/expressionsem.d +++ b/compiler/src/dmd/expressionsem.d @@ -12370,7 +12370,8 @@ private extern (C++) final class ExpressionSemanticVisitor : Visitor } // lower some array comparisons to object.__equals(e1, e2) - if (needsArrayLowering || (t1.ty == Tarray && t2.ty == Tarray)) + if (sc.needsCodegen() && + (needsArrayLowering || (t1.ty == Tarray && t2.ty == Tarray))) { //printf("Lowering to __equals %s %s\n", exp.e1.toChars(), exp.e2.toChars()); diff --git a/compiler/test/fail_compilation/diag7420.d b/compiler/test/fail_compilation/diag7420.d index 3267e6692432..a19796d5d9b6 100644 --- a/compiler/test/fail_compilation/diag7420.d +++ b/compiler/test/fail_compilation/diag7420.d @@ -2,17 +2,16 @@ /* TEST_OUTPUT: --- -fail_compilation/diag7420.d(21): Error: static variable `x` cannot be read at compile time -fail_compilation/diag7420.d(21): while evaluating: `static assert(x < 4)` +fail_compilation/diag7420.d(20): Error: static variable `x` cannot be read at compile time +fail_compilation/diag7420.d(20): while evaluating: `static assert(x < 4)` +fail_compilation/diag7420.d(21): Error: static variable `y` cannot be read at compile time +fail_compilation/diag7420.d(21): while evaluating: `static assert(y == "abc")` fail_compilation/diag7420.d(22): Error: static variable `y` cannot be read at compile time -fail_compilation/diag7420.d(22): called from here: `__equals(y, "abc")` -fail_compilation/diag7420.d(22): while evaluating: `static assert(y == "abc")` +fail_compilation/diag7420.d(22): while evaluating: `static assert(cast(ubyte[])y != null)` fail_compilation/diag7420.d(23): Error: static variable `y` cannot be read at compile time -fail_compilation/diag7420.d(23): while evaluating: `static assert(cast(ubyte[])y != null)` +fail_compilation/diag7420.d(23): while evaluating: `static assert(cast(int)y[0] == 1)` fail_compilation/diag7420.d(24): Error: static variable `y` cannot be read at compile time -fail_compilation/diag7420.d(24): while evaluating: `static assert(cast(int)y[0] == 1)` -fail_compilation/diag7420.d(25): Error: static variable `y` cannot be read at compile time -fail_compilation/diag7420.d(25): while evaluating: `static assert(y[0..1].length == 1u)` +fail_compilation/diag7420.d(24): while evaluating: `static assert(y[0..1].length == 1u)` --- */ diff --git a/compiler/test/fail_compilation/ice19762.d b/compiler/test/fail_compilation/ice19762.d index a484327426b9..73c8216e1ac1 100644 --- a/compiler/test/fail_compilation/ice19762.d +++ b/compiler/test/fail_compilation/ice19762.d @@ -4,7 +4,7 @@ /* TEST_OUTPUT: --- -fail_compilation/ice19762.d(13): Error: struct `ice19762.X` had semantic errors when compiling +fail_compilation/ice19762.d(16): Error: undefined identifier `Err`, did you mean variable `err`? --- */