From 6e343225a836cf8d6f384cc172e45f2a43fc04b4 Mon Sep 17 00:00:00 2001 From: Alexander Medvednikov Date: Wed, 25 Mar 2026 16:42:16 +0300 Subject: [PATCH] cgen: fix wrapping a generic in a struct causing builder error (fixes #22250) --- ..._fn_return_types_with_generic_struct_test.v | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/vlib/v/tests/generics/generics_fn_return_types_with_generic_struct_test.v b/vlib/v/tests/generics/generics_fn_return_types_with_generic_struct_test.v index b971d95b7..699fa381f 100644 --- a/vlib/v/tests/generics/generics_fn_return_types_with_generic_struct_test.v +++ b/vlib/v/tests/generics/generics_fn_return_types_with_generic_struct_test.v @@ -30,3 +30,21 @@ fn test_generic_fn_return_map_of_generic_struct() { println(a) assert '${a}' == '{}' } + +struct Issue22250Wrapper[T] { + value T +} + +fn issue_22250_wrap_in_array[T](item Issue22250Wrapper[T]) Issue22250Wrapper[[]T] { + return Issue22250Wrapper[[]T]{ + value: [item.value] + } +} + +fn test_issue_22250_return_generic_struct_with_array_wrapped_type() { + wrapped := issue_22250_wrap_in_array[string](Issue22250Wrapper[string]{ + value: 'a' + }) + assert wrapped.value == ['a'] + assert typeof(wrapped).name == 'Issue22250Wrapper[[]string]' +} -- 2.39.5