go/src/cmd/compile/internal/walk
Matthew Dempsky 2f2d4b4e68 [dev.regabi] cmd/compile: remove {Ptr,Set}Init from Node interface
This CL separates out PtrInit and SetInit into a new InitNode
extension interface, and adds a new TakeInit helper function for
taking and clearing the Init list (if any) from a Node.

This allows removing miniNode.SetInit and miniNode.PtrInit, which in
turn allow getting rid of immutableEmptyNodes, and will allow
simplification of the Nodes API.

It would be nice to get rid of the default Init method too, but
there's way more code that expects to be able to call that at the
moment, so that'll have to wait.

Passes toolstash -cmp.

Change-Id: Ia8c18fab9555b774376f7f43eeecfde4f07b5946
Reviewed-on: https://go-review.googlesource.com/c/go/+/281001
Trust: Matthew Dempsky <mdempsky@google.com>
Run-TryBot: Matthew Dempsky <mdempsky@google.com>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Cuong Manh Le <cuong.manhle.vn@gmail.com>
2021-01-02 10:57:23 +00:00
..
assign.go [dev.regabi] cmd/compile: remove {Ptr,Set}Init from Node interface 2021-01-02 10:57:23 +00:00
builtin.go [dev.regabi] cmd/compile: remove {Ptr,Set}Init from Node interface 2021-01-02 10:57:23 +00:00
closure.go [dev.regabi] cmd/compile: refactor redundant type conversion [generated] 2021-01-01 18:25:46 +00:00
compare.go [dev.regabi] cmd/compile: change ir.IsAssignable -> ir.IsAddressable 2020-12-24 16:56:19 +00:00
complit.go [dev.regabi] cmd/compile: change AddrExpr.Alloc to AddrExpr.Prealloc 2020-12-29 19:37:00 +00:00
convert.go [dev.regabi] cmd/compile: move Node.Opt to Name 2020-12-29 07:45:00 +00:00
expr.go [dev.regabi] cmd/compile: remove {Ptr,Set}Init from Node interface 2021-01-02 10:57:23 +00:00
order.go [dev.regabi] cmd/compile: remove {Ptr,Set}Init from Node interface 2021-01-02 10:57:23 +00:00
race.go [dev.regabi] cmd/compile: rewrite to use linksym helpers [generated] 2020-12-29 07:54:55 +00:00
range.go [dev.regabi] cmd/compile: remove {Ptr,Set}Init from Node interface 2021-01-02 10:57:23 +00:00
select.go [dev.regabi] cmd/compile: remove {Ptr,Set}Init from Node interface 2021-01-02 10:57:23 +00:00
stmt.go [dev.regabi] cmd/compile: remove {Ptr,Set}Init from Node interface 2021-01-02 10:57:23 +00:00
switch.go [dev.regabi] cmd/compile: use *ir.Name instead of ir.Node for CaseClause.Var 2020-12-29 19:21:18 +00:00
walk.go [dev.regabi] cmd/compile: remove {Ptr,Set}Init from Node interface 2021-01-02 10:57:23 +00:00