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() {
 | 
						if elem_type.is_ptr() {
 | 
				
			||||||
		res = '_ptr$elem_type.nr_muls()'
 | 
							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]
 | 
					[inline]
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1138,6 +1138,9 @@ pub fn (mut g Gen) write_typedef_types() {
 | 
				
			||||||
					if fixed.starts_with('C__') {
 | 
										if fixed.starts_with('C__') {
 | 
				
			||||||
						fixed = fixed[3..]
 | 
											fixed = fixed[3..]
 | 
				
			||||||
					}
 | 
										}
 | 
				
			||||||
 | 
										if fixed.contains('ptr') {
 | 
				
			||||||
 | 
											fixed = 'void*'
 | 
				
			||||||
 | 
										}
 | 
				
			||||||
					if elem_sym.info is ast.FnType {
 | 
										if elem_sym.info is ast.FnType {
 | 
				
			||||||
						pos := g.out.len
 | 
											pos := g.out.len
 | 
				
			||||||
						g.write_fn_ptr_decl(&elem_sym.info, '')
 | 
											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