From d93737dd34d25180b15827394169e187eb422246 Mon Sep 17 00:00:00 2001 From: yuyi Date: Sun, 26 Sep 2021 18:07:51 +0800 Subject: [PATCH] cgen: fix assign map get to blank (fix #11508) (#11982) --- vlib/v/gen/c/cgen.v | 1 + vlib/v/tests/map_get_assign_blank_test.v | 10 ++++++++++ 2 files changed, 11 insertions(+) create mode 100644 vlib/v/tests/map_get_assign_blank_test.v diff --git a/vlib/v/gen/c/cgen.v b/vlib/v/gen/c/cgen.v index 9487352986..21d689484e 100644 --- a/vlib/v/gen/c/cgen.v +++ b/vlib/v/gen/c/cgen.v @@ -2748,6 +2748,7 @@ fn (mut g Gen) gen_assign_stmt(assign_stmt ast.AssignStmt) { g.expr(val) g.writeln(';}') } + g.is_assign_lhs = false } else if assign_stmt.op == .assign && (is_fixed_array_init || (right_sym.kind == .array_fixed && val is ast.Ident)) { mut v_var := '' diff --git a/vlib/v/tests/map_get_assign_blank_test.v b/vlib/v/tests/map_get_assign_blank_test.v new file mode 100644 index 0000000000..fe6647d4ae --- /dev/null +++ b/vlib/v/tests/map_get_assign_blank_test.v @@ -0,0 +1,10 @@ +type Abc = int | string + +fn test_map_get_assign_blank() { + x := map[string]Abc{} + _ := x['nonexisting'] + if y := x['nonexisting'] { + println(y) + } + assert true +}