diff --git a/compiler/src/dmd/parse.d b/compiler/src/dmd/parse.d index a7a930335ad..757aefb26bf 100644 --- a/compiler/src/dmd/parse.d +++ b/compiler/src/dmd/parse.d @@ -9749,6 +9749,7 @@ immutable PREC[EXP.max + 1] precedence = EXP.assign : PREC.assign, EXP.construct : PREC.assign, EXP.blit : PREC.assign, + EXP.loweredAssignExp : PREC.assign, EXP.addAssign : PREC.assign, EXP.minAssign : PREC.assign, EXP.concatenateAssign : PREC.assign, diff --git a/compiler/test/compilable/vcg-ast-arraylength.d b/compiler/test/compilable/vcg-ast-arraylength.d index 8fdd7808f7b..8c44421c617 100644 --- a/compiler/test/compilable/vcg-ast-arraylength.d +++ b/compiler/test/compilable/vcg-ast-arraylength.d @@ -23,4 +23,9 @@ void main() static assert(is(typeof(a.length = 0) == size_t)); static assert(is(typeof(a.length = f.length = 0) == size_t)); + + // https://issues.dlang.org/show_bug.cgi?id=24790 + struct S { int[] payload; } + S s; + s.payload.length += 3; }