From 4ed06a34f7d2908795dbfc44fc91ec12df00865e Mon Sep 17 00:00:00 2001 From: CreeperFace <165158232+dy-tea@users.noreply.github.com> Date: Sun, 14 Dec 2025 08:53:29 +0000 Subject: [PATCH] cgen: use final_sym for elem_sym in index_of_array (fix #25960) (#25961) --- vlib/v/gen/c/index.v | 2 +- .../alias_set_elem_to_alias_of_fixed_array_test.v | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) create mode 100644 vlib/v/tests/aliases/alias_set_elem_to_alias_of_fixed_array_test.v diff --git a/vlib/v/gen/c/index.v b/vlib/v/gen/c/index.v index 7cc5fbc47..c68c93568 100644 --- a/vlib/v/gen/c/index.v +++ b/vlib/v/gen/c/index.v @@ -170,7 +170,7 @@ fn (mut g Gen) index_of_array(node ast.IndexExpr, sym ast.TypeSymbol) { left_is_ptr := node.left_type.is_ptr() info := sym.info as ast.Array elem_type := info.elem_type - elem_sym := g.table.sym(elem_type) + elem_sym := g.table.final_sym(elem_type) elem_type_str := if elem_sym.kind == .function { 'voidptr' } else { diff --git a/vlib/v/tests/aliases/alias_set_elem_to_alias_of_fixed_array_test.v b/vlib/v/tests/aliases/alias_set_elem_to_alias_of_fixed_array_test.v new file mode 100644 index 000000000..270c17dbe --- /dev/null +++ b/vlib/v/tests/aliases/alias_set_elem_to_alias_of_fixed_array_test.v @@ -0,0 +1,10 @@ +type Pixel = [4]u8 + +fn test_setting_of_element_of_array_to_aliased_fixed_array() { + mut px := Pixel([u8(1), 2, 3, 4]!) + mut pixels := []Pixel{len: 64} + pixels[5] = px + assert pixels[4] == Pixel{} + assert pixels[5] == px + assert pixels[6] == Pixel{} +} -- 2.39.5