From f5bce0cb784f7f76327597400c327e95769c0d10 Mon Sep 17 00:00:00 2001 From: Alexander Medvednikov Date: Thu, 30 Apr 2026 05:07:08 +0300 Subject: [PATCH] all: fix more tests --- vlib/sync/waitgroup_test.v | 17 ++++++++++------- vlib/v/checker/fn.v | 4 ++-- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/vlib/sync/waitgroup_test.v b/vlib/sync/waitgroup_test.v index d02df8da4..098b86fc5 100644 --- a/vlib/sync/waitgroup_test.v +++ b/vlib/sync/waitgroup_test.v @@ -34,17 +34,20 @@ fn test_waitgroup_reuse() { } fn test_waitgroup_no_use() { - mut done := false - spawn fn (done voidptr) { - time.sleep(10 * time.second) - if unsafe { *(&bool(done)) } == false { - panic('test_waitgroup_no_use did not complete in time') + done := chan bool{cap: 1} + watchdog := spawn fn (done chan bool) { + select { + _ := <-done {} + 10 * time.second { + panic('test_waitgroup_no_use did not complete in time') + } } - }(voidptr(&done)) + }(done) mut wg := new_waitgroup() wg.wait() - done = true + done <- true + watchdog.wait() } fn test_waitgroup_go() { diff --git a/vlib/v/checker/fn.v b/vlib/v/checker/fn.v index 295631f40..8345c60a8 100644 --- a/vlib/v/checker/fn.v +++ b/vlib/v/checker/fn.v @@ -2203,8 +2203,8 @@ fn (mut c Checker) fn_call(mut node ast.CallExpr, mut continue_check &bool) ast. c.evaluate_once_comptime_if_attribute(mut func.attrs[func.ctdefine_idx]) } if node.kind == .free && func.mod == 'builtin' && args_len == 1 - && c.table.cur_fn != unsafe { nil } && c.table.cur_fn.is_method && !c.is_builtin_mod - && !c.inside_recheck { + && c.table.cur_fn != unsafe { nil } && c.table.cur_fn.is_method + && c.table.cur_fn.short_name != 'free' && !c.is_builtin_mod && !c.inside_recheck { if node.args[0].expr is ast.Ident { if node.args[0].expr.name == c.table.cur_fn.receiver.name { receiver_sym := c.table.sym(c.table.cur_fn.receiver.typ) -- 2.39.5