Noticed while preparing a CL for Go 1.14 to remove esc.go.
Change-Id: Ic12be33f5b16c8424d85f373fa450247be086078
Reviewed-on: https://go-review.googlesource.com/c/go/+/173298
Run-TryBot: Matthew Dempsky <mdempsky@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Cherry Zhang <cherryyz@google.com>
var newescape bool
func escapes(all []*Node) {
- esc := escAnalyze
+ visitBottomUp(all, escapeImpl())
+}
+
+func escapeImpl() func([]*Node, bool) {
if newescape {
- esc = escapeFuncs
+ return escapeFuncs
}
- visitBottomUp(all, esc)
+ return escAnalyze
}
const (
if rcvr.IsPtr() && rcvr.Elem() == method.Type.Recv().Type && rcvr.Elem().Sym != nil {
inlcalls(fn)
}
- escAnalyze([]*Node{fn}, false)
+ escapeImpl()([]*Node{fn}, false)
Curfn = nil
funccompile(fn)