From: Matthew Dempsky Date: Sun, 27 Dec 2020 19:11:11 +0000 (-0800) Subject: [dev.regabi] cmd/compile: remove Declare in makepartialcall X-Git-Tag: go1.17beta1~1539^2~202 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=098a6490b9;p=gostls13.git [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 Run-TryBot: Matthew Dempsky TryBot-Result: Go Bot Reviewed-by: Cuong Manh Le --- diff --git a/src/cmd/compile/internal/typecheck/func.go b/src/cmd/compile/internal/typecheck/func.go index a9d92c668c..ed4f3ad4fe 100644 --- a/src/cmd/compile/internal/typecheck/func.go +++ b/src/cmd/compile/internal/typecheck/func.go @@ -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))) }