]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/compile/internal/gc: convert Type.Broke into a bool
authorDave Cheney <dave@cheney.net>
Mon, 7 Sep 2015 00:37:26 +0000 (10:37 +1000)
committerDave Cheney <dave@cheney.net>
Tue, 8 Sep 2015 03:17:10 +0000 (03:17 +0000)
Convert Type.Broke from a uint8 to a boolean

This change passes go build -toolexec 'toolstash -cmp' -a std.

Change-Id: I44e7548c71b00467e36576bdf62933c42555a21a
Reviewed-on: https://go-review.googlesource.com/14307
Run-TryBot: Dave Cheney <dave@cheney.net>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: HÃ¥vard Haugen <havard.haugen@gmail.com>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
src/cmd/compile/internal/gc/align.go
src/cmd/compile/internal/gc/const.go
src/cmd/compile/internal/gc/dcl.go
src/cmd/compile/internal/gc/go.go
src/cmd/compile/internal/gc/subr.go
src/cmd/compile/internal/gc/swt.go
src/cmd/compile/internal/gc/typecheck.go

index 10a497a4b3abdbedad57c1dcd8d4be6f4e2031b8..ff0adb3fe2ddeb8d368f73df217832a3e82235d0 100644 (file)
@@ -129,8 +129,8 @@ func dowidth(t *Type) {
        if t.Width == -2 {
                lno := int(lineno)
                lineno = int32(t.Lineno)
-               if t.Broke == 0 {
-                       t.Broke = 1
+               if !t.Broke {
+                       t.Broke = true
                        Yyerror("invalid recursive type %v", t)
                }
 
@@ -141,7 +141,7 @@ func dowidth(t *Type) {
 
        // break infinite recursion if the broken recursive type
        // is referenced again
-       if t.Broke != 0 && t.Width == 0 {
+       if t.Broke && t.Width == 0 {
                return
        }
 
@@ -233,7 +233,7 @@ func dowidth(t *Type) {
                checkwidth(t.Down)
 
        case TFORW: // should have been filled in
-               if t.Broke == 0 {
+               if !t.Broke {
                        Yyerror("invalid recursive type %v", t)
                }
                w = 1 // anything will do
@@ -272,9 +272,9 @@ func dowidth(t *Type) {
                        checkwidth(t.Type)
                        t.Align = uint8(Widthptr)
                } else if t.Bound == -100 {
-                       if t.Broke == 0 {
+                       if !t.Broke {
                                Yyerror("use of [...] array outside of array literal")
-                               t.Broke = 1
+                               t.Broke = true
                        }
                } else {
                        Fatalf("dowidth %v", t) // probably [...]T
index 201a583319e5caed33d111ca3df2ce7493b81d76..de231906784f87757e0f08b8222343ac9ea954d8 100644 (file)
@@ -292,7 +292,7 @@ func convlit1(np **Node, t *Type, explicit bool) {
 
 bad:
        if n.Diag == 0 {
-               if t.Broke == 0 {
+               if !t.Broke {
                        Yyerror("cannot convert %v to type %v", n, t)
                }
                n.Diag = 1
index 157f525b1961ab05bd8e8c24d29a50bb5ef49bfa..62aca0b2772eeb5ddc50c34cf42cb81078a2fe24 100644 (file)
@@ -834,7 +834,7 @@ func structfield(n *Node) *Type {
 
        f.Type = n.Type
        if f.Type == nil {
-               f.Broke = 1
+               f.Broke = true
        }
 
        switch n.Val().Ctype() {
@@ -894,16 +894,16 @@ func tostruct(l *NodeList) *Type {
                tp = &f.Down
        }
 
-       for f := t.Type; f != nil && t.Broke == 0; f = f.Down {
-               if f.Broke != 0 {
-                       t.Broke = 1
+       for f := t.Type; f != nil && !t.Broke; f = f.Down {
+               if f.Broke {
+                       t.Broke = true
                }
        }
 
        uniqgen++
        checkdupfields(t.Type, "field")
 
-       if t.Broke == 0 {
+       if !t.Broke {
                checkwidth(t)
        }
 
@@ -929,9 +929,9 @@ func tofunargs(l *NodeList) *Type {
                tp = &f.Down
        }
 
-       for f := t.Type; f != nil && t.Broke == 0; f = f.Down {
-               if f.Broke != 0 {
-                       t.Broke = 1
+       for f := t.Type; f != nil && !t.Broke; f = f.Down {
+               if f.Broke {
+                       t.Broke = true
                }
        }
 
@@ -984,11 +984,11 @@ func interfacefield(n *Node) *Type {
 
                                case TFORW:
                                        Yyerror("interface type loop involving %v", n.Type)
-                                       f.Broke = 1
+                                       f.Broke = true
 
                                default:
                                        Yyerror("interface contains embedded non-interface %v", n.Type)
-                                       f.Broke = 1
+                                       f.Broke = true
                                }
                        }
                }
@@ -998,7 +998,7 @@ func interfacefield(n *Node) *Type {
 
        f.Type = n.Type
        if f.Type == nil {
-               f.Broke = 1
+               f.Broke = true
        }
 
        lineno = int32(lno)
@@ -1034,9 +1034,9 @@ func tointerface(l *NodeList) *Type {
                }
        }
 
-       for f := t.Type; f != nil && t.Broke == 0; f = f.Down {
-               if f.Broke != 0 {
-                       t.Broke = 1
+       for f := t.Type; f != nil && !t.Broke; f = f.Down {
+               if f.Broke {
+                       t.Broke = true
                }
        }
 
@@ -1224,8 +1224,8 @@ func functype(this *Node, in *NodeList, out *NodeList) *Type {
        checkdupfields(t.Type.Down.Type, "argument")
        checkdupfields(t.Type.Down.Down.Type, "argument")
 
-       if t.Type.Broke != 0 || t.Type.Down.Broke != 0 || t.Type.Down.Down.Broke != 0 {
-               t.Broke = 1
+       if t.Type.Broke || t.Type.Down.Broke || t.Type.Down.Down.Broke {
+               t.Broke = true
        }
 
        if this != nil {
@@ -1383,7 +1383,7 @@ func addmethod(sf *Sym, t *Type, local bool, nointerface bool) {
                                t = t.Type
                        }
 
-                       if t.Broke != 0 { // rely on typecheck having complained before
+                       if t.Broke { // rely on typecheck having complained before
                                return
                        }
                        if t.Sym == nil {
index 91838ffdda5e2a11bedda0e1fd42be5550b4a244..f87f7bb2a4eb352d811c06b7324940dd8f660a46 100644 (file)
@@ -165,8 +165,8 @@ type Type struct {
        Copyany     uint8
        Local       bool // created in this file
        Deferwidth  uint8
-       Broke       uint8 // broken type definition.
-       Isddd       bool  // TFIELD is ... argument
+       Broke       bool // broken type definition.
+       Isddd       bool // TFIELD is ... argument
        Align       uint8
        Haspointers uint8 // 0 unknown, 1 no, 2 yes
 
index 605597fb69f2d6acb1ac1360fd408b65ad33df89..5cb75479d1dbd958008d1ab1a7b4be58cb508ae0 100644 (file)
@@ -426,7 +426,7 @@ func algtype1(t *Type, bad **Type) int {
        if bad != nil {
                *bad = nil
        }
-       if t.Broke != 0 {
+       if t.Broke {
                return AMEM
        }
        if t.Noalg != 0 {
@@ -1133,7 +1133,7 @@ func assignop(src *Type, dst *Type, why *string) int {
                }
 
                // we'll have complained about this method anyway, suppress spurious messages.
-               if have != nil && have.Sym == missing.Sym && (have.Type.Broke != 0 || missing.Type.Broke != 0) {
+               if have != nil && have.Sym == missing.Sym && (have.Type.Broke || missing.Type.Broke) {
                        return OCONVIFACE
                }
 
@@ -1317,7 +1317,7 @@ func assignconv(n *Node, t *Type, context string) *Node {
 
 // Convert node n for assignment to type t.
 func assignconvfn(n *Node, t *Type, context func() string) *Node {
-       if n == nil || n.Type == nil || n.Type.Broke != 0 {
+       if n == nil || n.Type == nil || n.Type.Broke {
                return n
        }
 
index c1a5a6dfb55ac96416daf263c42562b3a483f997..a0e0c4158d5585442752fba2ab0386e708042150 100644 (file)
@@ -153,9 +153,9 @@ func typecheckswitch(n *Node) {
                                                // reset to original type
                                                ll.N = n.Left.Right
                                        case ll.N.Type.Etype != TINTER && t.Etype == TINTER && !implements(ll.N.Type, t, &missing, &have, &ptr):
-                                               if have != nil && missing.Broke == 0 && have.Broke == 0 {
+                                               if have != nil && !missing.Broke && !have.Broke {
                                                        Yyerror("impossible type switch case: %v cannot have dynamic type %v"+" (wrong type for %v method)\n\thave %v%v\n\twant %v%v", Nconv(n.Left.Right, obj.FmtLong), ll.N.Type, missing.Sym, have.Sym, Tconv(have.Type, obj.FmtShort), missing.Sym, Tconv(missing.Type, obj.FmtShort))
-                                               } else if missing.Broke == 0 {
+                                               } else if !missing.Broke {
                                                        Yyerror("impossible type switch case: %v cannot have dynamic type %v"+" (missing %v method)", Nconv(n.Left.Right, obj.FmtLong), ll.N.Type, missing.Sym)
                                                }
                                        }
index fdeaa5bcccbd979301cab31fb25f2552c66c87e5..b3d49b0962a184399dd0906ea05651fbdbdbbf84 100644 (file)
@@ -348,7 +348,7 @@ OpSwitch:
                } else if l.Op == ODDD {
                        t.Bound = -100 // to be filled in
                        if top&Ecomplit == 0 && n.Diag == 0 {
-                               t.Broke = 1
+                               t.Broke = true
                                n.Diag = 1
                                Yyerror("use of [...] array outside of array literal")
                        }
@@ -430,7 +430,7 @@ OpSwitch:
                ok |= Etype
                n.Op = OTYPE
                n.Type = tostruct(n.List)
-               if n.Type == nil || n.Type.Broke != 0 {
+               if n.Type == nil || n.Type.Broke {
                        n.Type = nil
                        return
                }
@@ -1286,7 +1286,7 @@ OpSwitch:
                l = n.Left
                if l.Op == OTYPE {
                        if n.Isddd || l.Type.Bound == -100 {
-                               if l.Type.Broke == 0 {
+                               if !l.Type.Broke {
                                        Yyerror("invalid use of ... in type conversion to %v", l.Type)
                                }
                                n.Diag = 1
@@ -1753,7 +1753,7 @@ OpSwitch:
                var why string
                n.Op = uint8(convertop(t, n.Type, &why))
                if (n.Op) == 0 {
-                       if n.Diag == 0 && n.Type.Broke == 0 {
+                       if n.Diag == 0 && !n.Type.Broke {
                                Yyerror("cannot convert %v to type %v%s", Nconv(n.Left, obj.FmtLong), n.Type, why)
                                n.Diag = 1
                        }
@@ -2307,7 +2307,7 @@ func checkdefergo(n *Node) {
 
        // type is broken or missing, most likely a method call on a broken type
        // we will warn about the broken type elsewhere. no need to emit a potentially confusing error
-       if n.Left.Type == nil || n.Left.Type.Broke != 0 {
+       if n.Left.Type == nil || n.Left.Type.Broke {
                return
        }
 
@@ -2627,7 +2627,7 @@ func typecheckaste(op int, call *Node, isddd bool, tstruct *Type, nl *NodeList,
 
        lno := int(lineno)
 
-       if tstruct.Broke != 0 {
+       if tstruct.Broke {
                goto out
        }
 
@@ -3804,7 +3804,7 @@ func typecheckdef(n *Node) *Node {
                if n.Type.Etype == TFORW && nerrors > nerrors0 {
                        // Something went wrong during type-checking,
                        // but it was reported. Silence future errors.
-                       n.Type.Broke = 1
+                       n.Type.Broke = true
                }
 
                if Curfn != nil {