mirror of
https://github.com/golang/go
synced 2024-11-11 18:31:38 -07:00
[dev.regabi] cmd/compile: remove Declare in makepartialcall
This is the only remaining late call to Declare. By changing it to use Temp, we'll be able to move the legacy lexical scoping logic by moving it to noder and iimport. Passes toolstash -cmp. Change-Id: Id7cf7a08e3138e50816f515fef3088785a10aaf4 Reviewed-on: https://go-review.googlesource.com/c/go/+/280513 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>
This commit is contained in:
parent
137f0d2e06
commit
098a6490b9
@ -285,15 +285,13 @@ func makepartialcall(dot *ir.SelectorExpr) *ir.Func {
|
||||
|
||||
// Declare and initialize variable holding receiver.
|
||||
cr := ir.NewClosureRead(rcvrtype, types.Rnd(int64(types.PtrSize), int64(rcvrtype.Align)))
|
||||
ptr := NewName(Lookup(".this"))
|
||||
Declare(ptr, ir.PAUTO)
|
||||
ptr.SetUsed(true)
|
||||
var ptr *ir.Name
|
||||
var body []ir.Node
|
||||
if rcvrtype.IsPtr() || rcvrtype.IsInterface() {
|
||||
ptr.SetType(rcvrtype)
|
||||
ptr = Temp(rcvrtype)
|
||||
body = append(body, ir.NewAssignStmt(base.Pos, ptr, cr))
|
||||
} else {
|
||||
ptr.SetType(types.NewPtr(rcvrtype))
|
||||
ptr = Temp(types.NewPtr(rcvrtype))
|
||||
body = append(body, ir.NewAssignStmt(base.Pos, ptr, NodAddr(cr)))
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user