golang/test/fixedbugs/issue49016.dir
Cuong Manh Le 4e565f7372 cmd/compile: fix crawling of embeddable types during inline
In CL 327872, there's a fix for crawling of embeddable types directly
reached by the user, so all of its methods need to be re-exported. But
we missed the cased when an un-exported type may be reachable by
embedding in exported type. Example:

	type t struct {}
	func (t) M() {}

	func F() interface{} { return struct{ t }{} }

We generate the wrapper for "struct{ t }".M, and when inlining call to
"struct{ t }".M makes "t.M" reachable.

It works well, and only be revealed in CL 327871, when we changed
methodWrapper to always call inline.InlineCalls, thus causes the crash
in #49016, which involve dot type in inlined function.

Fixes #49016

Change-Id: If174fa5575132da5cf60e4bd052f7011c4e76c5d
Reviewed-on: https://go-review.googlesource.com/c/go/+/356254
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>
2021-10-20 17:26:58 +00:00
..
a.go cmd/compile: fix crawling of embeddable types during inline 2021-10-20 17:26:58 +00:00
b.go cmd/compile: fix crawling of embeddable types during inline 2021-10-20 17:26:58 +00:00
c.go cmd/compile: fix crawling of embeddable types during inline 2021-10-20 17:26:58 +00:00
d.go cmd/compile: fix crawling of embeddable types during inline 2021-10-20 17:26:58 +00:00
e.go cmd/compile: fix crawling of embeddable types during inline 2021-10-20 17:26:58 +00:00
f.go cmd/compile: fix crawling of embeddable types during inline 2021-10-20 17:26:58 +00:00
g.go cmd/compile: fix crawling of embeddable types during inline 2021-10-20 17:26:58 +00:00