From 001998244729b8815046e3dbca44f572eb77ccce Mon Sep 17 00:00:00 2001 From: Alexander Medvednikov Date: Tue, 21 Apr 2026 15:12:57 +0300 Subject: [PATCH] parser: fix comptime $else { import log } error when in one line (fixes #26527) --- vlib/v/parser/module.v | 2 +- .../parenthesized_propagated_index_or_block_test.v | 13 +++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/vlib/v/parser/module.v b/vlib/v/parser/module.v index 1747d6ab1..37334eb36 100644 --- a/vlib/v/parser/module.v +++ b/vlib/v/parser/module.v @@ -298,7 +298,7 @@ fn (mut p Parser) import_stmt() ast.Import { } pos_t := p.tok.pos() if import_pos.line_nr == pos_t.line_nr { - if p.tok.kind !in [.lcbr, .eof, .comment, .semicolon, .key_import] { + if p.tok.kind !in [.lcbr, .rcbr, .eof, .comment, .semicolon, .key_import] { p.error_with_pos('cannot import multiple modules at a time', pos_t) return import_node } diff --git a/vlib/v/parser/parenthesized_propagated_index_or_block_test.v b/vlib/v/parser/parenthesized_propagated_index_or_block_test.v index 6594c280f..0f3b1022e 100644 --- a/vlib/v/parser/parenthesized_propagated_index_or_block_test.v +++ b/vlib/v/parser/parenthesized_propagated_index_or_block_test.v @@ -17,3 +17,16 @@ fn main() { mut checker_ := checker.new_checker(table, vpref) checker_.check(mut prog) } + +fn test_top_level_comptime_else_allows_one_line_import() { + source_text := " +$if never_defined ? {} $else { import log } + +log.info('42') +" + mut table := ast.new_table() + vpref := &pref.Preferences{} + mut prog := parse_text(source_text, '', mut table, .skip_comments, vpref) + mut checker_ := checker.new_checker(table, vpref) + checker_.check(mut prog) +} -- 2.39.5