ast, cgen: fix const fixed array of reference value (#13022)
parent
4b55800ffd
commit
00a0c1886e
|
@ -835,7 +835,7 @@ pub fn (t &Table) array_fixed_cname(elem_type Type, size int) string {
|
|||
if elem_type.is_ptr() {
|
||||
res = '_ptr$elem_type.nr_muls()'
|
||||
}
|
||||
return 'Array_fixed_${elem_type_sym.cname}_$size' + res
|
||||
return 'Array_fixed_$elem_type_sym.cname${res}_$size'
|
||||
}
|
||||
|
||||
[inline]
|
||||
|
|
|
@ -1138,6 +1138,9 @@ pub fn (mut g Gen) write_typedef_types() {
|
|||
if fixed.starts_with('C__') {
|
||||
fixed = fixed[3..]
|
||||
}
|
||||
if fixed.contains('ptr') {
|
||||
fixed = 'void*'
|
||||
}
|
||||
if elem_sym.info is ast.FnType {
|
||||
pos := g.out.len
|
||||
g.write_fn_ptr_decl(&elem_sym.info, '')
|
||||
|
|
|
@ -0,0 +1,10 @@
|
|||
const (
|
||||
foo = u32(1)
|
||||
bar = u32(2)
|
||||
weapon_keys = [&foo, &bar]!
|
||||
)
|
||||
|
||||
fn test_const_fixed_array_of_ref_value() {
|
||||
assert weapon_keys[0] == &foo
|
||||
assert weapon_keys[1] == &bar
|
||||
}
|
Loading…
Reference in New Issue