From 537d99439dc77530d717b23806447b178d63901a Mon Sep 17 00:00:00 2001 From: Alexander Medvednikov Date: Wed, 15 Apr 2026 02:57:44 +0300 Subject: [PATCH] checker: fix cannot use `[]Data` as `[]Cols` even though `Data` implements `Cols` (fixes #23666) --- ...interface_array_implicit_conversion_test.v | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/vlib/v/tests/interfaces/interface_array_implicit_conversion_test.v b/vlib/v/tests/interfaces/interface_array_implicit_conversion_test.v index b901b3bb8..6c57a679a 100644 --- a/vlib/v/tests/interfaces/interface_array_implicit_conversion_test.v +++ b/vlib/v/tests/interfaces/interface_array_implicit_conversion_test.v @@ -41,3 +41,27 @@ fn test_append_array_of_structs_to_array_of_interface() { points << spoints assert sum_x(points) == 26 } + +interface Cols { + cols() string +} + +struct Data implements Cols {} + +fn (d Data) cols() string { + return 'data' +} + +fn print_first_last(cols []Cols) string { + return '${cols[0].cols()}:${cols[cols.len - 1].cols()}' +} + +fn test_pass_len_initialized_array_of_implements_struct_to_array_of_interface_param() { + data := []Data{len: 3} + assert print_first_last(data) == 'data:data' +} + +fn test_pass_array_of_struct_pointers_to_array_of_interface_param() { + data := []&Data{len: 3, init: &Data{}} + assert print_first_last(data) == 'data:data' +} -- 2.39.5