From: Josh Bleecher Snyder Date: Fri, 6 May 2016 16:06:05 +0000 (-0700) Subject: cmd/compile: refactor out method-called-as-function check X-Git-Tag: go1.8beta1~1741 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=3c55ee642005db840f8d84bbdfaafa66f713559d;p=gostls13.git cmd/compile: refactor out method-called-as-function check Change-Id: I417aae8622d7d363863704594680bd2502a09049 Reviewed-on: https://go-review.googlesource.com/27463 Run-TryBot: Josh Bleecher Snyder Reviewed-by: Brad Fitzpatrick TryBot-Result: Gobot Gobot --- diff --git a/src/cmd/compile/internal/gc/inl.go b/src/cmd/compile/internal/gc/inl.go index 8245a73791..2b84dd4a66 100644 --- a/src/cmd/compile/internal/gc/inl.go +++ b/src/cmd/compile/internal/gc/inl.go @@ -179,7 +179,7 @@ func ishairy(n *Node, budget *int32) bool { break } - if n.Left.Op == ONAME && n.Left.Left != nil && n.Left.Left.Op == OTYPE && n.Left.Right != nil && n.Left.Right.Op == ONAME { // methods called as functions + if n.isMethodCalledAsFunction() { if d := n.Left.Sym.Def; d != nil && d.Func.Inl.Len() != 0 { *budget -= d.Func.InlCost break @@ -458,10 +458,8 @@ func inlnode(n *Node) *Node { } if n.Left.Func != nil && n.Left.Func.Inl.Len() != 0 && !isIntrinsicCall1(n) { // normal case n = mkinlcall(n, n.Left, n.Isddd) - } else if n.Left.Op == ONAME && n.Left.Left != nil && n.Left.Left.Op == OTYPE && n.Left.Right != nil && n.Left.Right.Op == ONAME { // methods called as functions - if n.Left.Sym.Def != nil { - n = mkinlcall(n, n.Left.Sym.Def, n.Isddd) - } + } else if n.isMethodCalledAsFunction() && n.Left.Sym.Def != nil { + n = mkinlcall(n, n.Left.Sym.Def, n.Isddd) } case OCALLMETH: @@ -1004,3 +1002,7 @@ func setlno(n *Node, lno int32) { setlnolist(n.Ninit, lno) setlnolist(n.Nbody, lno) } + +func (n *Node) isMethodCalledAsFunction() bool { + return n.Left.Op == ONAME && n.Left.Left != nil && n.Left.Left.Op == OTYPE && n.Left.Right != nil && n.Left.Right.Op == ONAME +}