From e1e6ddce5f8c848bdc74429f97bda36f629fa22e Mon Sep 17 00:00:00 2001 From: kbkpbot Date: Thu, 1 Jan 2026 16:46:40 +0800 Subject: [PATCH] markused: add array method map and filter support (fix #26233) (#26238) --- vlib/v/markused/walker.v | 5 +++++ vlib/v/tests/skip_unused/array_map_filter.run.out | 1 + vlib/v/tests/skip_unused/array_map_filter.vv | 9 +++++++++ 3 files changed, 15 insertions(+) create mode 100644 vlib/v/tests/skip_unused/array_map_filter.run.out create mode 100644 vlib/v/tests/skip_unused/array_map_filter.vv diff --git a/vlib/v/markused/walker.v b/vlib/v/markused/walker.v index 5897a609d..0615a4dcb 100644 --- a/vlib/v/markused/walker.v +++ b/vlib/v/markused/walker.v @@ -1703,6 +1703,11 @@ pub fn (mut w Walker) finalize(include_panic_deps bool) { charptr_idx_str := ast.charptr_type_idx.str() w.fn_by_name(charptr_idx_str + '.vstring_literal') } + if w.used_arr_method['map'] || w.used_arr_method['filter'] { + ref_array_idx_str := int(ast.array_type.ref()).str() + w.fn_by_name(ref_array_idx_str + '.push') + w.fn_by_name(ref_array_idx_str + '.push_noscan') + } // remove unused symbols w.remove_unused_fn_generic_types() diff --git a/vlib/v/tests/skip_unused/array_map_filter.run.out b/vlib/v/tests/skip_unused/array_map_filter.run.out new file mode 100644 index 000000000..19f86f493 --- /dev/null +++ b/vlib/v/tests/skip_unused/array_map_filter.run.out @@ -0,0 +1 @@ +done diff --git a/vlib/v/tests/skip_unused/array_map_filter.vv b/vlib/v/tests/skip_unused/array_map_filter.vv new file mode 100644 index 000000000..92e6c3ee4 --- /dev/null +++ b/vlib/v/tests/skip_unused/array_map_filter.vv @@ -0,0 +1,9 @@ +fn main() { + [u8(5)].map(fn (e u8) u8 { + return e + }) + [u8(5)].filter(fn (e u8) bool { + return true + }) + println('done') +} -- 2.39.5