From b99078c3ef270b6f60a2352ffab47a9ca7040e3a Mon Sep 17 00:00:00 2001 From: Alexander Medvednikov Date: Thu, 23 Apr 2026 20:49:39 +0300 Subject: [PATCH] checker: fix empty `[noreturn]` function (fixes #18018) --- .../checker/tests/empty_noreturn_fn_in_or_block_err.out | 7 +++++++ .../v/checker/tests/empty_noreturn_fn_in_or_block_err.vv | 9 +++++++++ 2 files changed, 16 insertions(+) create mode 100644 vlib/v/checker/tests/empty_noreturn_fn_in_or_block_err.out create mode 100644 vlib/v/checker/tests/empty_noreturn_fn_in_or_block_err.vv diff --git a/vlib/v/checker/tests/empty_noreturn_fn_in_or_block_err.out b/vlib/v/checker/tests/empty_noreturn_fn_in_or_block_err.out new file mode 100644 index 000000000..1872c1784 --- /dev/null +++ b/vlib/v/checker/tests/empty_noreturn_fn_in_or_block_err.out @@ -0,0 +1,7 @@ +vlib/v/checker/tests/empty_noreturn_fn_in_or_block_err.vv:4:1: error: @[noreturn] functions should end with a call to another @[noreturn] function, or with an infinite `for {}` loop + 2 | + 3 | @[noreturn] + 4 | fn usage() { + | ~~~~~~~~~~ + 5 | } + 6 | diff --git a/vlib/v/checker/tests/empty_noreturn_fn_in_or_block_err.vv b/vlib/v/checker/tests/empty_noreturn_fn_in_or_block_err.vv new file mode 100644 index 000000000..0c541a3b5 --- /dev/null +++ b/vlib/v/checker/tests/empty_noreturn_fn_in_or_block_err.vv @@ -0,0 +1,9 @@ +import os + +@[noreturn] +fn usage() { +} + +fn main() { + println(os.args[1] or { usage() }) +} -- 2.39.5