From cd7e9a12688288c97a30aaf71cc18c3c604118d2 Mon Sep 17 00:00:00 2001 From: Felipe Pena Date: Wed, 6 Aug 2025 17:07:44 -0300 Subject: [PATCH] markused: fix thread type mark by go/spawn expr (fix #25049) (#25054) --- vlib/v/markused/walker.v | 1 + vlib/v/tests/concurrency/thread_type_test.v | 13 +++++++++++++ 2 files changed, 14 insertions(+) create mode 100644 vlib/v/tests/concurrency/thread_type_test.v diff --git a/vlib/v/markused/walker.v b/vlib/v/markused/walker.v index 3227b8970b..0debfd7f00 100644 --- a/vlib/v/markused/walker.v +++ b/vlib/v/markused/walker.v @@ -519,6 +519,7 @@ fn (mut w Walker) expr(node_ ast.Expr) { if node.is_expr { w.fn_by_name('free') } + w.mark_by_type(w.table.find_or_register_thread(node.call_expr.return_type)) w.expr(node.call_expr) w.uses_spawn = true diff --git a/vlib/v/tests/concurrency/thread_type_test.v b/vlib/v/tests/concurrency/thread_type_test.v new file mode 100644 index 0000000000..d08a0ac626 --- /dev/null +++ b/vlib/v/tests/concurrency/thread_type_test.v @@ -0,0 +1,13 @@ +fn f() ! { + println('hi') +} + +fn g() int { + println('hi') + return 23 +} + +fn test_main() { + _ = go f() + _ := spawn g() +}