cgen: fix nested option fixed array (fix #23708) (#23845)

This commit is contained in:
Felipe Pena 2025-03-02 05:18:56 -03:00 committed by GitHub
parent 8201b8a45f
commit 17fc31b746
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 36 additions and 0 deletions

View File

@ -6610,6 +6610,7 @@ fn (mut g Gen) write_types(symbols []&ast.TypeSymbol) {
base)};')
}
}
g.type_definitions.writeln('typedef ${fixed_elem_name} ${styp} [${len}];')
} else if !(elem_sym.info is ast.ArrayFixed && elem_sym.info.is_fn_ret) {
g.type_definitions.writeln('typedef ${fixed_elem_name} ${styp} [${len}];')
}

View File

@ -0,0 +1,35 @@
struct Test {
board [2][2]?Piece
}
struct Piece {
white bool
}
fn test_main() {
t := Test{
board: [[?Piece{
white: false
}, ?Piece{
white: false
}]!, [?Piece{
white: true
}, ?Piece{
white: true
}]!]!
}
assert '${t.board[1][1]}' == 'Option(Piece{
white: true
})'
assert t.str() == 'Test{
board: [[Option(Piece{
white: false
}), Option(Piece{
white: false
})], [Option(Piece{
white: true
}), Option(Piece{
white: true
})]]
}'
}