From afcf82e759153b3155313c5842c5828d108e3bf5 Mon Sep 17 00:00:00 2001 From: Alexander Medvednikov Date: Wed, 15 Apr 2026 06:17:42 +0300 Subject: [PATCH] all: fix more tests --- vlib/v/checker/fn.v | 9 ++++++--- vlib/v/gen/c/comptime.v | 2 ++ vlib/v/tests/local_module_submodules_test.v | 4 ++-- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/vlib/v/checker/fn.v b/vlib/v/checker/fn.v index e891c4709..50d1f9c98 100644 --- a/vlib/v/checker/fn.v +++ b/vlib/v/checker/fn.v @@ -1932,9 +1932,12 @@ fn (mut c Checker) fn_call(mut node ast.CallExpr, mut continue_check &bool) ast. && !c.inside_recheck { if node.args[0].expr is ast.Ident { if node.args[0].expr.name == c.table.cur_fn.receiver.name { - c.warn('calling builtin `free()` on a method receiver will cause a' + - ' runtime crash when the receiver is stack-allocated; free individual fields instead', - node.pos) + receiver_sym := c.table.sym(c.table.cur_fn.receiver.typ) + if !receiver_sym.is_heap() { + c.warn('calling builtin `free()` on a method receiver will cause a' + + ' runtime crash when the receiver is stack-allocated; free individual fields instead', + node.pos) + } } } } diff --git a/vlib/v/gen/c/comptime.v b/vlib/v/gen/c/comptime.v index 8f99d1eda..60f172485 100644 --- a/vlib/v/gen/c/comptime.v +++ b/vlib/v/gen/c/comptime.v @@ -273,6 +273,8 @@ fn (mut g Gen) comptime_call(mut node ast.ComptimeCall) { g.write('&') } else if !m.params[0].typ.is_ptr() && node.left.obj.typ.is_ptr() { g.write('*'.repeat(node.left.obj.typ.nr_muls())) + } else if !m.params[0].typ.is_ptr() && node.left.obj.is_auto_deref { + g.write('*') } } } diff --git a/vlib/v/tests/local_module_submodules_test.v b/vlib/v/tests/local_module_submodules_test.v index f410d60d8..dd2c5613a 100644 --- a/vlib/v/tests/local_module_submodules_test.v +++ b/vlib/v/tests/local_module_submodules_test.v @@ -13,11 +13,11 @@ fn temp_output_path(name string) string { } fn project_path() string { - return os.join_path(os.vtmp_dir(), 'local_module_submodules') + return os.join_path(os.real_path(os.vtmp_dir()), 'local_module_submodules') } fn issue_24649_project_path() string { - return os.join_path(os.vtmp_dir(), 'issue_24649_local_module_submodules') + return os.join_path(os.real_path(os.vtmp_dir()), 'issue_24649_local_module_submodules') } fn write_local_module_submodules_project() { -- 2.39.5