From 1f0135d6459e38dc49393590bc83fa2a8ed300e0 Mon Sep 17 00:00:00 2001 From: Dennis Korpel Date: Thu, 3 Oct 2024 12:01:17 +0200 Subject: [PATCH] Fix bugzilla 24790 - -vcg-ast ICE on lowered assign exp --- compiler/src/dmd/parse.d | 1 + compiler/test/compilable/vcg-ast-arraylength.d | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/compiler/src/dmd/parse.d b/compiler/src/dmd/parse.d index a7a930335ad5..757aefb26bfa 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 8fdd7808f7b8..8c44421c6173 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; }