From e29dc9893c6fd51098f148347ba19a12ce6aaba0 Mon Sep 17 00:00:00 2001 From: Felipe Pena Date: Mon, 20 Oct 2025 18:15:46 -0300 Subject: [PATCH] markused: fix markused struct heap (#25542) --- vlib/v/markused/walker.v | 3 ++- vlib/v/tests/structs/struct_heap_test.v | 8 ++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) create mode 100644 vlib/v/tests/structs/struct_heap_test.v diff --git a/vlib/v/markused/walker.v b/vlib/v/markused/walker.v index 34bb07c0a..7fb4bc9de 100644 --- a/vlib/v/markused/walker.v +++ b/vlib/v/markused/walker.v @@ -840,7 +840,8 @@ fn (mut w Walker) expr(node_ ast.Expr) { } sym := w.table.sym(node.typ) w.mark_by_sym(sym) - if !w.uses_memdup && sym.kind == .sum_type { + if !w.uses_memdup + && (sym.kind == .sum_type || (sym.info is ast.Struct && sym.info.is_heap)) { w.uses_memdup = true } if node.has_update_expr { diff --git a/vlib/v/tests/structs/struct_heap_test.v b/vlib/v/tests/structs/struct_heap_test.v new file mode 100644 index 000000000..a3d561b55 --- /dev/null +++ b/vlib/v/tests/structs/struct_heap_test.v @@ -0,0 +1,8 @@ +@[heap] +struct Data { + array [1024]int +} + +fn test_main() { + _ := Data{} +} -- 2.39.5