From 3debd197126535ee1a749c8581d391fc116b8e80 Mon Sep 17 00:00:00 2001 From: Alexander Medvednikov Date: Sun, 24 May 2026 15:11:32 +0300 Subject: [PATCH] parser, fmt: keep trailing comment on array element when next line starts with `.enum_val` (fix #27074) (#27222) --- .../tests/array_init_enum_short_no_comma_expected.vv | 11 +++++++++++ .../fmt/tests/array_init_enum_short_no_comma_input.vv | 11 +++++++++++ vlib/v/parser/expr.v | 3 ++- 3 files changed, 24 insertions(+), 1 deletion(-) create mode 100644 vlib/v/fmt/tests/array_init_enum_short_no_comma_expected.vv create mode 100644 vlib/v/fmt/tests/array_init_enum_short_no_comma_input.vv diff --git a/vlib/v/fmt/tests/array_init_enum_short_no_comma_expected.vv b/vlib/v/fmt/tests/array_init_enum_short_no_comma_expected.vv new file mode 100644 index 000000000..614e90047 --- /dev/null +++ b/vlib/v/fmt/tests/array_init_enum_short_no_comma_expected.vv @@ -0,0 +1,11 @@ +enum EE { + a + b + c +} + +const xs = [ + EE.a, // first + .b, // missing comma + .c, // third +] diff --git a/vlib/v/fmt/tests/array_init_enum_short_no_comma_input.vv b/vlib/v/fmt/tests/array_init_enum_short_no_comma_input.vv new file mode 100644 index 000000000..2f073775b --- /dev/null +++ b/vlib/v/fmt/tests/array_init_enum_short_no_comma_input.vv @@ -0,0 +1,11 @@ +enum EE { + a + b + c +} + +const xs = [ + EE.a, // first + .b // missing comma + .c, // third +] diff --git a/vlib/v/parser/expr.v b/vlib/v/parser/expr.v index c41febc02..11280cdd5 100644 --- a/vlib/v/parser/expr.v +++ b/vlib/v/parser/expr.v @@ -500,7 +500,8 @@ fn (mut p Parser) check_expr(precedence int) !ast.Expr { p.if_cond_comments << p.eat_comments() } if p.pref.is_fmt && p.tok.kind == .comment && p.peek_tok.kind.is_infix() && !p.inside_map_init - && !(p.peek_tok.kind == .mul && p.peek_tok.pos().line_nr != p.tok.pos().line_nr) { + && !(p.peek_tok.kind == .mul && p.peek_tok.pos().line_nr != p.tok.pos().line_nr) + && !(p.peek_tok.kind == .dot && p.inside_array_lit) { p.left_comments = p.eat_comments() } return p.expr_with_left(node, precedence, is_stmt_ident) -- 2.39.5