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() +}