]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/compile: use IsPtr instead of types.Tptr
authorMatthew Dempsky <mdempsky@google.com>
Mon, 6 Nov 2017 22:49:35 +0000 (14:49 -0800)
committerMatthew Dempsky <mdempsky@google.com>
Wed, 3 Oct 2018 18:11:40 +0000 (18:11 +0000)
Produced using gofmt -r.

Change-Id: I4184940618a3a1dac563a9d20aafe1d9f705300c
Reviewed-on: https://go-review.googlesource.com/c/76310
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
src/cmd/compile/internal/gc/typecheck.go

index 24aba6bac4d1e3a8be67144fa0ff24a350f56cb5..4831ecca3415c70c386aebe98a59c60f8c6f79e7 100644 (file)
@@ -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)