]> Cypherpunks.ru repositories - gostls13.git/commitdiff
go/types: cleanup panic calls
authorRobert Findley <rfindley@google.com>
Mon, 16 Aug 2021 00:44:49 +0000 (20:44 -0400)
committerRobert Findley <rfindley@google.com>
Mon, 16 Aug 2021 13:38:52 +0000 (13:38 +0000)
This is a port of CL 339969 to go/types. It differs slightly in
errors.go, due to the differing API.

Change-Id: Ie2bf84ebf312ea3872ee6706615dfc6169a32405
Reviewed-on: https://go-review.googlesource.com/c/go/+/342431
Trust: Robert Findley <rfindley@google.com>
Run-TryBot: Robert Findley <rfindley@google.com>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Robert Griesemer <gri@golang.org>
src/go/types/decl.go
src/go/types/errors.go
src/go/types/lookup.go
src/go/types/named.go
src/go/types/signature.go
src/go/types/stmt.go
src/go/types/typeparam.go
src/go/types/typeset.go
src/go/types/typestring.go
src/go/types/union.go
src/go/types/universe.go

index 831b1da5896841bcc8d64ddeaa583c68650b0d2b..6c305caff596f1f3800a0035618f23f9cb6b9a5e 100644 (file)
@@ -339,7 +339,7 @@ func (check *Checker) validType(typ Type, path []Object) typeInfo {
                        // cycle detected
                        for i, tn := range path {
                                if t.obj.pkg != check.pkg {
-                                       panic("internal error: type cycle via package-external type")
+                                       panic("type cycle via package-external type")
                                }
                                if tn == t.obj {
                                        check.cycleError(path[i:])
@@ -347,7 +347,7 @@ func (check *Checker) validType(typ Type, path []Object) typeInfo {
                                        return t.info
                                }
                        }
-                       panic("internal error: cycle start not found")
+                       panic("cycle start not found")
                }
                return t.info
        }
index 226310641733ae833e91e63064ec6a8db71ea469..7468626b98618c6a1a41b849f7ae92ead5575727 100644 (file)
@@ -68,7 +68,7 @@ func (check *Checker) sprintf(format string, args ...interface{}) string {
                case nil:
                        arg = "<nil>"
                case operand:
-                       panic("internal error: should always pass *operand")
+                       panic("got operand instead of *operand")
                case *operand:
                        arg = operandString(a, check.qualifier)
                case token.Pos:
@@ -236,7 +236,7 @@ func (s atPos) Pos() token.Pos {
 func spanOf(at positioner) posSpan {
        switch x := at.(type) {
        case nil:
-               panic("internal error: nil")
+               panic("nil positioner")
        case posSpan:
                return x
        case ast.Node:
index 7cab336dbe2e8632d1551afbe0b6fec02e555d7b..28628058c23929863fb295bb783cf6f4f30b7a81 100644 (file)
@@ -320,7 +320,7 @@ func (check *Checker) missingMethod(V Type, T *Interface, static bool) (method,
                                return m, f
                        }
                        if ftyp.TParams().Len() > 0 {
-                               panic("internal error: method with type parameters")
+                               panic("method with type parameters")
                        }
 
                        // If the methods have type parameters we don't care whether they
@@ -372,7 +372,7 @@ func (check *Checker) missingMethod(V Type, T *Interface, static bool) (method,
                        return m, f
                }
                if ftyp.TParams().Len() > 0 {
-                       panic("internal error: method with type parameters")
+                       panic("method with type parameters")
                }
 
                // If V is a (instantiated) generic type, its methods are still
index f26b50aa81177fb449c90b886f4f66c10a2fc486..020b9827e804488cf7501ee212258b6dab47a8a4 100644 (file)
@@ -33,7 +33,7 @@ type Named struct {
 // The underlying type must not be a *Named.
 func NewNamed(obj *TypeName, underlying Type, methods []*Func) *Named {
        if _, ok := underlying.(*Named); ok {
-               panic("types.NewNamed: underlying type must not be *Named")
+               panic("underlying type must not be *Named")
        }
        return (*Checker)(nil).newNamed(obj, nil, underlying, nil, methods)
 }
@@ -100,7 +100,7 @@ func (check *Checker) newNamed(obj *TypeName, orig *Named, underlying Type, tpar
                check.later(func() {
                        switch typ.under().(type) {
                        case *Named:
-                               panic("internal error: unexpanded underlying type")
+                               panic("unexpanded underlying type")
                        }
                        typ.check = nil
                })
@@ -144,10 +144,10 @@ func (t *Named) Method(i int) *Func { return t.load().methods[i] }
 // SetUnderlying sets the underlying type and marks t as complete.
 func (t *Named) SetUnderlying(underlying Type) {
        if underlying == nil {
-               panic("types.Named.SetUnderlying: underlying type must not be nil")
+               panic("underlying type must not be nil")
        }
        if _, ok := underlying.(*Named); ok {
-               panic("types.Named.SetUnderlying: underlying type must not be *Named")
+               panic("underlying type must not be *Named")
        }
        t.load().underlying = underlying
 }
@@ -195,7 +195,7 @@ func (n0 *Named) under() Type {
        }
 
        if n0.check == nil {
-               panic("internal error: Named.check == nil but type is incomplete")
+               panic("Named.check == nil but type is incomplete")
        }
 
        // Invariant: after this point n0 as well as any named types in its
@@ -246,7 +246,7 @@ func (n0 *Named) under() Type {
                // Also, doing so would lead to a race condition (was issue #31749).
                // Do this check always, not just in debug mode (it's cheap).
                if n.obj.pkg != check.pkg {
-                       panic("internal error: imported type with unresolved underlying type")
+                       panic("imported type with unresolved underlying type")
                }
                n.underlying = u
        }
index 5a69bb17b5724ffca0f4a889e033adeaa377a95c..4624b54acb5bc5c31c4c040591902fe61b24159a 100644 (file)
@@ -38,10 +38,10 @@ func NewSignature(recv *Var, params, results *Tuple, variadic bool) *Signature {
        if variadic {
                n := params.Len()
                if n == 0 {
-                       panic("types.NewSignature: variadic function must have at least one parameter")
+                       panic("variadic function must have at least one parameter")
                }
                if _, ok := params.At(n - 1).typ.(*Slice); !ok {
-                       panic("types.NewSignature: variadic parameter must be of unnamed slice type")
+                       panic("variadic parameter must be of unnamed slice type")
                }
        }
        return &Signature{recv: recv, params: params, results: results, variadic: variadic}
index 4c545efcf9fa456f66431e26ee62cdccbe081b43..29c189ec5d4f1184e49512d7323d59df0b986a8d 100644 (file)
@@ -15,7 +15,7 @@ import (
 
 func (check *Checker) funcBody(decl *declInfo, name string, sig *Signature, body *ast.BlockStmt, iota constant.Value) {
        if check.conf.IgnoreFuncBodies {
-               panic("internal error: function body not ignored")
+               panic("function body not ignored")
        }
 
        if trace {
index cf80eaab3809e2de79cc5ebb3cd55a9f21cb42be..ce8b4a7073321ec1cd02c91d7196cdc5d46917a8 100644 (file)
@@ -77,7 +77,7 @@ func (t *TypeParam) Constraint() Type {
 // SetConstraint sets the type constraint for t.
 func (t *TypeParam) SetConstraint(bound Type) {
        if bound == nil {
-               panic("types2.TypeParam.SetConstraint: bound must not be nil")
+               panic("nil constraint")
        }
        t.bound = bound
 }
@@ -113,7 +113,7 @@ func bindTParams(list []*TypeName) *TypeParams {
        for i, tp := range list {
                typ := tp.Type().(*TypeParam)
                if typ.index >= 0 {
-                       panic("internal error: type parameter bound more than once")
+                       panic("type parameter bound more than once")
                }
                typ.index = i
        }
index 3caba05202a5afa3e660abcfc05d5659a892efc0..307dae3aedf0f7b1e51f20799c8b47f7c20626c1 100644 (file)
@@ -323,10 +323,10 @@ func sortMethods(list []*Func) {
 
 func assertSortedMethods(list []*Func) {
        if !debug {
-               panic("internal error: assertSortedMethods called outside debug mode")
+               panic("assertSortedMethods called outside debug mode")
        }
        if !sort.IsSorted(byUniqueMethodName(list)) {
-               panic("internal error: methods not sorted")
+               panic("methods not sorted")
        }
 }
 
index ae15e1503e88090a0f00d464c39c443a86e3ea22..975bba633af17f632e71181c0dad28bd4fba36e9 100644 (file)
@@ -132,7 +132,7 @@ func writeType(buf *bytes.Buffer, typ Type, qf Qualifier, visited []Type) {
                // Unions only appear as (syntactic) embedded elements
                // in interfaces and syntactically cannot be empty.
                if t.NumTerms() == 0 {
-                       panic("internal error: empty union")
+                       panic("empty union")
                }
                for i, t := range t.terms {
                        if i > 0 {
@@ -185,7 +185,7 @@ func writeType(buf *bytes.Buffer, typ Type, qf Qualifier, visited []Type) {
                case RecvOnly:
                        s = "<-chan "
                default:
-                       panic("unreachable")
+                       unreachable()
                }
                buf.WriteString(s)
                if parens {
@@ -332,7 +332,7 @@ func writeTuple(buf *bytes.Buffer, tup *Tuple, variadic bool, qf Qualifier, visi
                                        // special case:
                                        // append(s, "foo"...) leads to signature func([]byte, string...)
                                        if t := asBasic(typ); t == nil || t.kind != String {
-                                               panic("internal error: string type expected")
+                                               panic("expected string type")
                                        }
                                        writeType(buf, typ, qf, visited)
                                        buf.WriteString("...")
index 7f38c01f40e5cfe09fac6374bd89e04a2c618404..5419ed821a019f8073e6760faff6707bca85a672 100644 (file)
@@ -133,7 +133,7 @@ func overlappingTerm(terms []*term, y *term) int {
                // disjoint requires non-nil, non-top arguments
                if debug {
                        if x == nil || x.typ == nil || y == nil || y.typ == nil {
-                               panic("internal error: empty or top union term")
+                               panic("empty or top union term")
                        }
                }
                if !x.disjoint(y) {
index 7d48c5d74851614d6e3b888a60a42553a6194dc8..b8bf0a0db124840b08eed9b121e193f2bae3d9c5 100644 (file)
@@ -259,6 +259,6 @@ func def(obj Object) {
                }
        }
        if scope.Insert(obj) != nil {
-               panic("internal error: double declaration")
+               panic("double declaration of predeclared identifier")
        }
 }