cgen: fix error for printing aliases of multi fixed array (#14348)
parent
606d8cfaca
commit
5697d4375b
|
@ -18,6 +18,9 @@ fn (mut g Gen) gen_assign_stmt(node_ ast.AssignStmt) {
|
|||
mut return_type := ast.void_type
|
||||
is_decl := node.op == .decl_assign
|
||||
g.assign_op = node.op
|
||||
defer {
|
||||
g.assign_op = .unknown
|
||||
}
|
||||
op := if is_decl { token.Kind.assign } else { node.op }
|
||||
right_expr := node.right[0]
|
||||
match right_expr {
|
||||
|
|
|
@ -3883,6 +3883,9 @@ fn (mut g Gen) cast_expr(node ast.CastExpr) {
|
|||
g.expr(node.expr)
|
||||
g.write('))')
|
||||
} else if sym.kind == .alias && g.table.final_sym(node.typ).kind == .array_fixed {
|
||||
if node.expr is ast.ArrayInit && g.assign_op != .decl_assign {
|
||||
g.write('(${g.typ(node.expr.typ)})')
|
||||
}
|
||||
g.expr(node.expr)
|
||||
} else if node.expr_type == ast.bool_type && node.typ.is_int() {
|
||||
styp := g.typ(node.typ)
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
Mat([[1, 2], [3, 4]])
|
||||
Mat([[1, 2], [3, 4]])
|
|
@ -0,0 +1,7 @@
|
|||
type Mat = [2][2]int
|
||||
|
||||
fn main() {
|
||||
a := Mat([[1, 2]!, [3, 4]!]!)
|
||||
println(a)
|
||||
println(Mat([[1, 2]!, [3, 4]!]!))
|
||||
}
|
Loading…
Reference in New Issue