From: Matthew Dempsky Date: Mon, 6 Nov 2017 22:49:35 +0000 (-0800) Subject: cmd/compile: use IsPtr instead of types.Tptr X-Git-Tag: go1.12beta1~922 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=02b444bc1d5f87f36a7726d0474358fb51fec13f;p=gostls13.git cmd/compile: use IsPtr instead of types.Tptr Produced using gofmt -r. Change-Id: I4184940618a3a1dac563a9d20aafe1d9f705300c Reviewed-on: https://go-review.googlesource.com/c/76310 Run-TryBot: Brad Fitzpatrick TryBot-Result: Gobot Gobot Reviewed-by: Brad Fitzpatrick --- diff --git a/src/cmd/compile/internal/gc/typecheck.go b/src/cmd/compile/internal/gc/typecheck.go index 24aba6bac4..4831ecca34 100644 --- a/src/cmd/compile/internal/gc/typecheck.go +++ b/src/cmd/compile/internal/gc/typecheck.go @@ -2436,7 +2436,7 @@ func isMethodApplicable(t *types.Type, m *types.Field) bool { } func derefall(t *types.Type) *types.Type { - for t != nil && t.Etype == types.Tptr { + for t != nil && t.IsPtr() { t = t.Elem() } return t @@ -2506,20 +2506,20 @@ func lookdot(n *Node, t *types.Type, dostrcmp int) *types.Field { dowidth(tt) rcvr := f2.Type.Recv().Type if !eqtype(rcvr, tt) { - if rcvr.Etype == types.Tptr && eqtype(rcvr.Elem(), tt) { + if rcvr.IsPtr() && eqtype(rcvr.Elem(), tt) { checklvalue(n.Left, "call pointer method on") n.Left = nod(OADDR, n.Left, nil) n.Left.SetImplicit(true) n.Left = typecheck(n.Left, Etype|Erv) - } else if tt.Etype == types.Tptr && rcvr.Etype != types.Tptr && eqtype(tt.Elem(), rcvr) { + } else if tt.IsPtr() && !rcvr.IsPtr() && eqtype(tt.Elem(), rcvr) { n.Left = nod(OIND, n.Left, nil) n.Left.SetImplicit(true) n.Left = typecheck(n.Left, Etype|Erv) - } else if tt.Etype == types.Tptr && tt.Elem().Etype == types.Tptr && eqtype(derefall(tt), derefall(rcvr)) { + } else if tt.IsPtr() && tt.Elem().IsPtr() && eqtype(derefall(tt), derefall(rcvr)) { yyerror("calling method %v with receiver %L requires explicit dereference", n.Sym, n.Left) - for tt.Etype == types.Tptr { + for tt.IsPtr() { // Stop one level early for method with pointer receiver. - if rcvr.Etype == types.Tptr && tt.Elem().Etype != types.Tptr { + if rcvr.IsPtr() && !tt.Elem().IsPtr() { break } n.Left = nod(OIND, n.Left, nil)