]> Cypherpunks.ru repositories - gostls13.git/commit
[dev.typeparams] cmd/compile: rewrite method calls during typecheck
authorCuong Manh Le <cuong.manhle.vn@gmail.com>
Fri, 25 Jun 2021 15:24:29 +0000 (22:24 +0700)
committerCuong Manh Le <cuong.manhle.vn@gmail.com>
Sat, 26 Jun 2021 08:39:47 +0000 (08:39 +0000)
commit0cf71f7f92c2623a132ab3257690826643d548af
tree4b830dda9c969984b9a6518d55f756378a19a961
parent180c338c6893c2e8b7f4692ed62f92a1ed0cd1e8
[dev.typeparams] cmd/compile: rewrite method calls during typecheck

CL 330671 move rewriting method call to method expression to escape
analysis. This CL move the rewriting up further, into typecheck. It
helps simplify the code for dowstream passes, as they now only have to
deal with OCALLFUNC.

There're two notes:

 - For -G=3, we can't rewrite d.M() where d is an instantiated receiver
   in transformCall, but let irgen.stencil to rewrite it.

 - Escape analysis still have to check for rewriting method calls, as
   the devirtualization pass can still generate OCALLMETH.

Does not pass toolstash, since when the export data now contains method
expression calls instead of method calls.

Change-Id: I77465ef04d50dc4efedddca7eb55b3fc9483db0e
Reviewed-on: https://go-review.googlesource.com/c/go/+/330831
Trust: Cuong Manh Le <cuong.manhle.vn@gmail.com>
Run-TryBot: Cuong Manh Le <cuong.manhle.vn@gmail.com>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
src/cmd/compile/internal/escape/call.go
src/cmd/compile/internal/inline/inl.go
src/cmd/compile/internal/noder/reader.go
src/cmd/compile/internal/noder/transform.go
src/cmd/compile/internal/typecheck/func.go
src/cmd/compile/internal/walk/convert.go
src/cmd/compile/internal/walk/expr.go
src/cmd/compile/internal/walk/order.go
src/cmd/compile/internal/walk/stmt.go
src/cmd/compile/internal/walk/walk.go