From a2d23306c2c603327c70fd23695d34e0d64fd646 Mon Sep 17 00:00:00 2001 From: yuyi Date: Fri, 1 Mar 2024 20:24:33 +0800 Subject: [PATCH] parser: fix formatting comptime if expr, after inc expr (fix #20927) (#20931) --- vlib/v/fmt/tests/comptime_if_after_inc_expr_keep.vv | 8 ++++++++ vlib/v/parser/expr.v | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) create mode 100644 vlib/v/fmt/tests/comptime_if_after_inc_expr_keep.vv diff --git a/vlib/v/fmt/tests/comptime_if_after_inc_expr_keep.vv b/vlib/v/fmt/tests/comptime_if_after_inc_expr_keep.vv new file mode 100644 index 000000000..ef9c4b2f5 --- /dev/null +++ b/vlib/v/fmt/tests/comptime_if_after_inc_expr_keep.vv @@ -0,0 +1,8 @@ +fn main() { + mut i := 0 + i++ + $if abc ? { + println(i) + } + println('done') +} diff --git a/vlib/v/parser/expr.v b/vlib/v/parser/expr.v index d54983074..4d335493a 100644 --- a/vlib/v/parser/expr.v +++ b/vlib/v/parser/expr.v @@ -613,7 +613,7 @@ fn (mut p Parser) expr_with_left(left ast.Expr, precedence int, is_stmt_ident bo if mut node is ast.IndexExpr { node.recursive_mapset_is_setter(true) } - is_c2v_prefix := p.peek_tok.kind == .dollar + is_c2v_prefix := p.peek_tok.kind == .dollar && p.peek_tok.is_next_to(p.tok) node = ast.PostfixExpr{ op: p.tok.kind expr: node -- 2.39.5