]> Cypherpunks repositories - gostls13.git/commitdiff
[dev.regabi] cmd/compile: remove Declare in makepartialcall
authorMatthew Dempsky <mdempsky@google.com>
Sun, 27 Dec 2020 19:11:11 +0000 (11:11 -0800)
committerMatthew Dempsky <mdempsky@google.com>
Mon, 28 Dec 2020 08:07:51 +0000 (08:07 +0000)
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>
src/cmd/compile/internal/typecheck/func.go

index a9d92c668cd7890ddabafbd9a45e15b584d6e1f5..ed4f3ad4fe9e780aa3d196459120c4e47e0dc942 100644 (file)
@@ -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)))
        }