mirror of
https://github.com/golang/go
synced 2024-09-29 12:14:28 -06:00
cmd/compile: use appendWalkStmt when possible
Change-Id: I718ad2fd98a3d30087e169abdd5ba3cc4f4b36ba Reviewed-on: https://go-review.googlesource.com/c/go/+/403999 TryBot-Result: Gopher Robot <gobot@golang.org> Reviewed-by: Matthew Dempsky <mdempsky@google.com> Run-TryBot: Cuong Manh Le <cuong.manhle.vn@gmail.com> Reviewed-by: David Chase <drchase@google.com>
This commit is contained in:
parent
b922055572
commit
ed462a66a5
@ -258,9 +258,7 @@ func fixedlit(ctxt initContext, kind initKind, n *ir.CompLitExpr, var_ ir.Node,
|
||||
case initKindStatic:
|
||||
genAsStatic(as)
|
||||
case initKindDynamic, initKindLocalCode:
|
||||
a = orderStmtInPlace(as, map[string][]*ir.Name{})
|
||||
a = walkStmt(a)
|
||||
init.Append(a)
|
||||
appendWalkStmt(init, orderStmtInPlace(as, map[string][]*ir.Name{}))
|
||||
default:
|
||||
base.Fatalf("fixedlit: bad kind %d", kind)
|
||||
}
|
||||
@ -396,19 +394,13 @@ func slicelit(ctxt initContext, n *ir.CompLitExpr, var_ ir.Node, init *ir.Nodes)
|
||||
|
||||
// build list of vauto[c] = expr
|
||||
ir.SetPos(value)
|
||||
as := typecheck.Stmt(ir.NewAssignStmt(base.Pos, a, value))
|
||||
as = orderStmtInPlace(as, map[string][]*ir.Name{})
|
||||
as = walkStmt(as)
|
||||
init.Append(as)
|
||||
as := ir.NewAssignStmt(base.Pos, a, value)
|
||||
appendWalkStmt(init, orderStmtInPlace(typecheck.Stmt(as), map[string][]*ir.Name{}))
|
||||
}
|
||||
|
||||
// make slice out of heap (6)
|
||||
a = ir.NewAssignStmt(base.Pos, var_, ir.NewSliceExpr(base.Pos, ir.OSLICE, vauto, nil, nil, nil))
|
||||
|
||||
a = typecheck.Stmt(a)
|
||||
a = orderStmtInPlace(a, map[string][]*ir.Name{})
|
||||
a = walkStmt(a)
|
||||
init.Append(a)
|
||||
appendWalkStmt(init, orderStmtInPlace(typecheck.Stmt(a), map[string][]*ir.Name{}))
|
||||
}
|
||||
|
||||
func maplit(n *ir.CompLitExpr, m ir.Node, init *ir.Nodes) {
|
||||
|
Loading…
Reference in New Issue
Block a user