From: Robert Griesemer Date: Mon, 10 Oct 2022 20:55:40 +0000 (-0700) Subject: go/types, types2: remove need for invalidAST prefix in error calls X-Git-Tag: go1.20rc1~658 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=19095e109d0ae037828c519dda0af307b8a01813;p=gostls13.git go/types, types2: remove need for invalidAST prefix in error calls Since we already provide the error code, the prefix can be deduced automatically. Except for the changes in errors.go, the updates were made with regex find-and-replaces: check\.error\((.+), InvalidSyntaxTree, invalidAST\+ => check.error($1, InvalidSyntaxTree, check\.errorf\((.+), InvalidSyntaxTree, invalidAST\+ => check.errorf($1, InvalidSyntaxTree, Change-Id: Ia02fc56ac7a8524bdf0c404ff2696435408327e9 Reviewed-on: https://go-review.googlesource.com/c/go/+/441975 Run-TryBot: Robert Griesemer Auto-Submit: Robert Griesemer Reviewed-by: Robert Findley Reviewed-by: Robert Griesemer TryBot-Result: Gopher Robot --- diff --git a/src/cmd/compile/internal/types2/decl.go b/src/cmd/compile/internal/types2/decl.go index a15d232aa3..8985aa9b61 100644 --- a/src/cmd/compile/internal/types2/decl.go +++ b/src/cmd/compile/internal/types2/decl.go @@ -899,7 +899,7 @@ func (check *Checker) declStmt(list []syntax.Decl) { check.pop().setColor(black) default: - check.errorf(s, InvalidSyntaxTree, invalidAST+"unknown syntax.Decl node %T", s) + check.errorf(s, InvalidSyntaxTree, "unknown syntax.Decl node %T", s) } } } diff --git a/src/cmd/compile/internal/types2/errors.go b/src/cmd/compile/internal/types2/errors.go index d1e4b65e1a..8bbd719335 100644 --- a/src/cmd/compile/internal/types2/errors.go +++ b/src/cmd/compile/internal/types2/errors.go @@ -221,7 +221,10 @@ func (check *Checker) dump(format string, args ...interface{}) { } func (check *Checker) err(at poser, code Code, msg string, soft bool) { - if code == 0 { + switch code { + case InvalidSyntaxTree: + msg = "invalid syntax tree: " + msg + case 0: panic("no error code provided") } @@ -264,7 +267,6 @@ func (check *Checker) err(at poser, code Code, msg string, soft bool) { } const ( - invalidAST = "invalid AST: " invalidArg = "invalid argument: " invalidOp = "invalid operation: " ) diff --git a/src/cmd/compile/internal/types2/expr.go b/src/cmd/compile/internal/types2/expr.go index d2ec7bd7fd..17e120f948 100644 --- a/src/cmd/compile/internal/types2/expr.go +++ b/src/cmd/compile/internal/types2/expr.go @@ -78,7 +78,7 @@ func (check *Checker) op(m opPredicates, x *operand, op syntax.Operator) bool { return false } } else { - check.errorf(x, InvalidSyntaxTree, invalidAST+"unknown operator %s", op) + check.errorf(x, InvalidSyntaxTree, "unknown operator %s", op) return false } return true @@ -1337,7 +1337,7 @@ func (check *Checker) exprInternal(x *operand, e syntax.Expr, hint Type) exprKin x.mode = value x.typ = sig } else { - check.errorf(e, InvalidSyntaxTree, invalidAST+"invalid function literal %v", e) + check.errorf(e, InvalidSyntaxTree, "invalid function literal %v", e) goto Error } @@ -1594,7 +1594,7 @@ func (check *Checker) exprInternal(x *operand, e syntax.Expr, hint Type) exprKin } // x.(type) expressions are encoded via TypeSwitchGuards if e.Type == nil { - check.error(e, InvalidSyntaxTree, invalidAST+"invalid use of AssertExpr") + check.error(e, InvalidSyntaxTree, "invalid use of AssertExpr") goto Error } T := check.varType(e.Type) @@ -1607,7 +1607,7 @@ func (check *Checker) exprInternal(x *operand, e syntax.Expr, hint Type) exprKin case *syntax.TypeSwitchGuard: // x.(type) expressions are handled explicitly in type switches - check.error(e, InvalidSyntaxTree, invalidAST+"use of .(type) outside type switch") + check.error(e, InvalidSyntaxTree, "use of .(type) outside type switch") goto Error case *syntax.CallExpr: @@ -1615,7 +1615,7 @@ func (check *Checker) exprInternal(x *operand, e syntax.Expr, hint Type) exprKin case *syntax.ListExpr: // catch-all for unexpected expression lists - check.error(e, InvalidSyntaxTree, invalidAST+"unexpected list of expressions") + check.error(e, InvalidSyntaxTree, "unexpected list of expressions") goto Error // case *syntax.UnaryExpr: @@ -1692,7 +1692,7 @@ func (check *Checker) exprInternal(x *operand, e syntax.Expr, hint Type) exprKin case *syntax.KeyValueExpr: // key:value expressions are handled in composite literals - check.error(e, InvalidSyntaxTree, invalidAST+"no key:value expected") + check.error(e, InvalidSyntaxTree, "no key:value expected") goto Error case *syntax.ArrayType, *syntax.SliceType, *syntax.StructType, *syntax.FuncType, diff --git a/src/cmd/compile/internal/types2/index.go b/src/cmd/compile/internal/types2/index.go index 0cf6072cab..9e5c4d8afa 100644 --- a/src/cmd/compile/internal/types2/index.go +++ b/src/cmd/compile/internal/types2/index.go @@ -274,7 +274,7 @@ func (check *Checker) sliceExpr(x *operand, e *syntax.SliceExpr) { // spec: "Only the first index may be omitted; it defaults to 0." if e.Full && (e.Index[1] == nil || e.Index[2] == nil) { - check.error(e, InvalidSyntaxTree, invalidAST+"2nd and 3rd index required in 3-index slice") + check.error(e, InvalidSyntaxTree, "2nd and 3rd index required in 3-index slice") x.mode = invalid return } @@ -329,12 +329,12 @@ L: func (check *Checker) singleIndex(e *syntax.IndexExpr) syntax.Expr { index := e.Index if index == nil { - check.errorf(e, InvalidSyntaxTree, invalidAST+"missing index for %s", e.X) + check.errorf(e, InvalidSyntaxTree, "missing index for %s", e.X) return nil } if l, _ := index.(*syntax.ListExpr); l != nil { if n := len(l.ElemList); n <= 1 { - check.errorf(e, InvalidSyntaxTree, invalidAST+"invalid use of ListExpr for index expression %v with %d indices", e, n) + check.errorf(e, InvalidSyntaxTree, "invalid use of ListExpr for index expression %v with %d indices", e, n) return nil } // len(l.ElemList) > 1 diff --git a/src/cmd/compile/internal/types2/interface.go b/src/cmd/compile/internal/types2/interface.go index 6382ceedce..0978989424 100644 --- a/src/cmd/compile/internal/types2/interface.go +++ b/src/cmd/compile/internal/types2/interface.go @@ -143,7 +143,7 @@ func (check *Checker) interfaceType(ityp *Interface, iface *syntax.InterfaceType sig, _ := typ.(*Signature) if sig == nil { if typ != Typ[Invalid] { - check.errorf(f.Type, InvalidSyntaxTree, invalidAST+"%s is not a method signature", typ) + check.errorf(f.Type, InvalidSyntaxTree, "%s is not a method signature", typ) } continue // ignore } diff --git a/src/cmd/compile/internal/types2/labels.go b/src/cmd/compile/internal/types2/labels.go index dd6f54ac05..ffb37004ce 100644 --- a/src/cmd/compile/internal/types2/labels.go +++ b/src/cmd/compile/internal/types2/labels.go @@ -219,7 +219,7 @@ func (check *Checker) blockBranches(all *Scope, parent *block, lstmt *syntax.Lab } default: - check.errorf(s, InvalidSyntaxTree, invalidAST+"branch statement: %s %s", s.Tok, name) + check.errorf(s, InvalidSyntaxTree, "branch statement: %s %s", s.Tok, name) return } diff --git a/src/cmd/compile/internal/types2/resolver.go b/src/cmd/compile/internal/types2/resolver.go index 122d5ec49c..cb29f720b2 100644 --- a/src/cmd/compile/internal/types2/resolver.go +++ b/src/cmd/compile/internal/types2/resolver.go @@ -467,7 +467,7 @@ func (check *Checker) collectObjects() { obj.setOrder(uint32(len(check.objMap))) default: - check.errorf(s, InvalidSyntaxTree, invalidAST+"unknown syntax.Decl node %T", s) + check.errorf(s, InvalidSyntaxTree, "unknown syntax.Decl node %T", s) } } } @@ -550,7 +550,7 @@ L: // unpack receiver type case *syntax.BadExpr: // ignore - error already reported by parser case nil: - check.error(ptyp, InvalidSyntaxTree, invalidAST+"parameterized receiver contains nil parameters") + check.error(ptyp, InvalidSyntaxTree, "parameterized receiver contains nil parameters") default: check.errorf(arg, BadDecl, "receiver type parameter %s must be an identifier", arg) } diff --git a/src/cmd/compile/internal/types2/signature.go b/src/cmd/compile/internal/types2/signature.go index a6afc0ffe6..61c6721f80 100644 --- a/src/cmd/compile/internal/types2/signature.go +++ b/src/cmd/compile/internal/types2/signature.go @@ -289,7 +289,7 @@ func (check *Checker) collectParams(scope *Scope, list []*syntax.Field, variadic // named parameter name := field.Name.Value if name == "" { - check.error(field.Name, InvalidSyntaxTree, invalidAST+"anonymous parameter") + check.error(field.Name, InvalidSyntaxTree, "anonymous parameter") // ok to continue } par := NewParam(field.Name.Pos(), check.pkg, name, typ) @@ -306,7 +306,7 @@ func (check *Checker) collectParams(scope *Scope, list []*syntax.Field, variadic } if named && anonymous { - check.error(list[0], InvalidSyntaxTree, invalidAST+"list contains both named and anonymous parameters") + check.error(list[0], InvalidSyntaxTree, "list contains both named and anonymous parameters") // ok to continue } diff --git a/src/cmd/compile/internal/types2/stmt.go b/src/cmd/compile/internal/types2/stmt.go index 9dcb375e7a..9edcaa1318 100644 --- a/src/cmd/compile/internal/types2/stmt.go +++ b/src/cmd/compile/internal/types2/stmt.go @@ -450,7 +450,7 @@ func (check *Checker) stmt(ctxt stmtContext, s syntax.Stmt) { if s.Rhs == nil { // x++ or x-- if len(lhs) != 1 { - check.errorf(s, InvalidSyntaxTree, invalidAST+"%s%s requires one operand", s.Op, s.Op) + check.errorf(s, InvalidSyntaxTree, "%s%s requires one operand", s.Op, s.Op) return } var x operand @@ -554,7 +554,7 @@ func (check *Checker) stmt(ctxt stmtContext, s syntax.Stmt) { // goto's must have labels, should have been caught above fallthrough default: - check.errorf(s, InvalidSyntaxTree, invalidAST+"branch statement: %s", s.Tok) + check.errorf(s, InvalidSyntaxTree, "branch statement: %s", s.Tok) } case *syntax.BlockStmt: @@ -582,7 +582,7 @@ func (check *Checker) stmt(ctxt stmtContext, s syntax.Stmt) { case *syntax.IfStmt, *syntax.BlockStmt: check.stmt(inner, s.Else) default: - check.error(s.Else, InvalidSyntaxTree, invalidAST+"invalid else branch in if statement") + check.error(s.Else, InvalidSyntaxTree, "invalid else branch in if statement") } case *syntax.SwitchStmt: @@ -674,7 +674,7 @@ func (check *Checker) stmt(ctxt stmtContext, s syntax.Stmt) { check.stmt(inner, s.Body) default: - check.error(s, InvalidSyntaxTree, invalidAST+"invalid statement") + check.error(s, InvalidSyntaxTree, "invalid statement") } } @@ -710,7 +710,7 @@ func (check *Checker) switchStmt(inner stmtContext, s *syntax.SwitchStmt) { seen := make(valueMap) // map of seen case values to positions and types for i, clause := range s.Body { if clause == nil { - check.error(clause, InvalidSyntaxTree, invalidAST+"incorrect expression switch case") + check.error(clause, InvalidSyntaxTree, "incorrect expression switch case") continue } end := s.Rbrace @@ -773,7 +773,7 @@ func (check *Checker) typeSwitchStmt(inner stmtContext, s *syntax.SwitchStmt, gu seen := make(map[Type]syntax.Expr) // map of seen types to positions for i, clause := range s.Body { if clause == nil { - check.error(s, InvalidSyntaxTree, invalidAST+"incorrect type switch case") + check.error(s, InvalidSyntaxTree, "incorrect type switch case") continue } end := s.Rbrace @@ -836,7 +836,7 @@ func (check *Checker) rangeStmt(inner stmtContext, s *syntax.ForStmt, rclause *s var sValue, sExtra syntax.Expr if p, _ := sKey.(*syntax.ListExpr); p != nil { if len(p.ElemList) < 2 { - check.error(s, InvalidSyntaxTree, invalidAST+"invalid lhs in range clause") + check.error(s, InvalidSyntaxTree, "invalid lhs in range clause") return } // len(p.ElemList) >= 2 @@ -918,7 +918,7 @@ func (check *Checker) rangeStmt(inner stmtContext, s *syntax.ForStmt, rclause *s vars = append(vars, obj) } } else { - check.errorf(lhs, InvalidSyntaxTree, invalidAST+"cannot declare %s", lhs) + check.errorf(lhs, InvalidSyntaxTree, "cannot declare %s", lhs) obj = NewVar(lhs.Pos(), check.pkg, "_", nil) // dummy variable } diff --git a/src/cmd/compile/internal/types2/struct.go b/src/cmd/compile/internal/types2/struct.go index ccf66d68cb..5e93cb9ea5 100644 --- a/src/cmd/compile/internal/types2/struct.go +++ b/src/cmd/compile/internal/types2/struct.go @@ -130,7 +130,7 @@ func (check *Checker) structType(styp *Struct, e *syntax.StructType) { pos := syntax.StartPos(f.Type) name := embeddedFieldIdent(f.Type) if name == nil { - check.errorf(pos, InvalidSyntaxTree, invalidAST+"invalid embedded field type %s", f.Type) + check.errorf(pos, InvalidSyntaxTree, "invalid embedded field type %s", f.Type) name = &syntax.Name{Value: "_"} // TODO(gri) need to set position to pos addInvalid(name, pos) continue @@ -217,7 +217,7 @@ func (check *Checker) tag(t *syntax.BasicLit) string { return val } } - check.errorf(t, InvalidSyntaxTree, invalidAST+"incorrect tag syntax: %q", t.Value) + check.errorf(t, InvalidSyntaxTree, "incorrect tag syntax: %q", t.Value) } return "" } diff --git a/src/cmd/compile/internal/types2/typexpr.go b/src/cmd/compile/internal/types2/typexpr.go index cd75e6ed00..4de658b0c4 100644 --- a/src/cmd/compile/internal/types2/typexpr.go +++ b/src/cmd/compile/internal/types2/typexpr.go @@ -385,7 +385,7 @@ func (check *Checker) typInternal(e0 syntax.Expr, def *Named) (T Type) { case syntax.RecvOnly: dir = RecvOnly default: - check.errorf(e, InvalidSyntaxTree, invalidAST+"unknown channel direction %d", e.Dir) + check.errorf(e, InvalidSyntaxTree, "unknown channel direction %d", e.Dir) // ok to continue } diff --git a/src/go/types/decl.go b/src/go/types/decl.go index 467cb7ef70..5f86cd675c 100644 --- a/src/go/types/decl.go +++ b/src/go/types/decl.go @@ -425,18 +425,18 @@ func (check *Checker) walkDecl(d ast.Decl, f func(decl)) { check.arityMatch(s, nil) f(varDecl{s}) default: - check.errorf(s, InvalidSyntaxTree, invalidAST+"invalid token %s", d.Tok) + check.errorf(s, InvalidSyntaxTree, "invalid token %s", d.Tok) } case *ast.TypeSpec: f(typeDecl{s}) default: - check.errorf(s, InvalidSyntaxTree, invalidAST+"unknown ast.Spec node %T", s) + check.errorf(s, InvalidSyntaxTree, "unknown ast.Spec node %T", s) } } case *ast.FuncDecl: f(funcDecl{d}) default: - check.errorf(d, InvalidSyntaxTree, invalidAST+"unknown ast.Decl node %T", d) + check.errorf(d, InvalidSyntaxTree, "unknown ast.Decl node %T", d) } } @@ -935,7 +935,7 @@ func (check *Checker) declStmt(d ast.Decl) { check.typeDecl(obj, d.spec, nil) check.pop().setColor(black) default: - check.errorf(d.node(), InvalidSyntaxTree, invalidAST+"unknown ast.Decl node %T", d.node()) + check.errorf(d.node(), InvalidSyntaxTree, "unknown ast.Decl node %T", d.node()) } }) } diff --git a/src/go/types/errors.go b/src/go/types/errors.go index ff33e8f700..b52019ddf5 100644 --- a/src/go/types/errors.go +++ b/src/go/types/errors.go @@ -220,7 +220,11 @@ func (check *Checker) report(errp *error_) { panic("empty error details") } - if errp.code == 0 { + msg := errp.msg(check.fset, check.qualifier) + switch errp.code { + case InvalidSyntaxTree: + msg = "invalid AST: " + msg + case 0: panic("no error code provided") } @@ -228,7 +232,7 @@ func (check *Checker) report(errp *error_) { e := Error{ Fset: check.fset, Pos: span.pos, - Msg: errp.msg(check.fset, check.qualifier), + Msg: msg, Soft: errp.soft, go116code: errp.code, go116start: span.start, @@ -276,7 +280,6 @@ func (check *Checker) report(errp *error_) { } const ( - invalidAST = "invalid AST: " invalidArg = "invalid argument: " invalidOp = "invalid operation: " ) diff --git a/src/go/types/expr.go b/src/go/types/expr.go index f7bf5d2b16..f11632fd6b 100644 --- a/src/go/types/expr.go +++ b/src/go/types/expr.go @@ -79,7 +79,7 @@ func (check *Checker) op(m opPredicates, x *operand, op token.Token) bool { return false } } else { - check.errorf(x, InvalidSyntaxTree, invalidAST+"unknown operator %s", op) + check.errorf(x, InvalidSyntaxTree, "unknown operator %s", op) return false } return true @@ -1314,7 +1314,7 @@ func (check *Checker) exprInternal(x *operand, e ast.Expr, hint Type) exprKind { x.mode = value x.typ = sig } else { - check.errorf(e, InvalidSyntaxTree, invalidAST+"invalid function literal %s", e) + check.errorf(e, InvalidSyntaxTree, "invalid function literal %s", e) goto Error } @@ -1639,7 +1639,7 @@ func (check *Checker) exprInternal(x *operand, e ast.Expr, hint Type) exprKind { case *ast.KeyValueExpr: // key:value expressions are handled in composite literals - check.error(e, InvalidSyntaxTree, invalidAST+"no key:value expected") + check.error(e, InvalidSyntaxTree, "no key:value expected") goto Error case *ast.ArrayType, *ast.StructType, *ast.FuncType, diff --git a/src/go/types/index.go b/src/go/types/index.go index e1ce74ff9f..45d591e31c 100644 --- a/src/go/types/index.go +++ b/src/go/types/index.go @@ -276,7 +276,7 @@ func (check *Checker) sliceExpr(x *operand, e *ast.SliceExpr) { // spec: "Only the first index may be omitted; it defaults to 0." if e.Slice3 && (e.High == nil || e.Max == nil) { - check.error(inNode(e, e.Rbrack), InvalidSyntaxTree, invalidAST+"2nd and 3rd index required in 3-index slice") + check.error(inNode(e, e.Rbrack), InvalidSyntaxTree, "2nd and 3rd index required in 3-index slice") x.mode = invalid return } @@ -331,7 +331,7 @@ L: // is reported and the result is nil. func (check *Checker) singleIndex(expr *typeparams.IndexExpr) ast.Expr { if len(expr.Indices) == 0 { - check.errorf(expr.Orig, InvalidSyntaxTree, invalidAST+"index expression %v with 0 indices", expr) + check.errorf(expr.Orig, InvalidSyntaxTree, "index expression %v with 0 indices", expr) return nil } if len(expr.Indices) > 1 { diff --git a/src/go/types/interface.go b/src/go/types/interface.go index 2fb8e40119..83538d2885 100644 --- a/src/go/types/interface.go +++ b/src/go/types/interface.go @@ -182,7 +182,7 @@ func (check *Checker) interfaceType(ityp *Interface, iface *ast.InterfaceType, d sig, _ := typ.(*Signature) if sig == nil { if typ != Typ[Invalid] { - check.errorf(f.Type, InvalidSyntaxTree, invalidAST+"%s is not a method signature", typ) + check.errorf(f.Type, InvalidSyntaxTree, "%s is not a method signature", typ) } continue // ignore } diff --git a/src/go/types/labels.go b/src/go/types/labels.go index ab43964faf..5ee941e369 100644 --- a/src/go/types/labels.go +++ b/src/go/types/labels.go @@ -220,7 +220,7 @@ func (check *Checker) blockBranches(all *Scope, parent *block, lstmt *ast.Labele } default: - check.errorf(s, InvalidSyntaxTree, invalidAST+"branch statement: %s %s", s.Tok, name) + check.errorf(s, InvalidSyntaxTree, "branch statement: %s %s", s.Tok, name) return } diff --git a/src/go/types/resolver.go b/src/go/types/resolver.go index c8ccaf4e6e..075bd91261 100644 --- a/src/go/types/resolver.go +++ b/src/go/types/resolver.go @@ -530,7 +530,7 @@ L: // unpack receiver type case *ast.BadExpr: // ignore - error already reported by parser case nil: - check.error(ix.Orig, InvalidSyntaxTree, invalidAST+"parameterized receiver contains nil parameters") + check.error(ix.Orig, InvalidSyntaxTree, "parameterized receiver contains nil parameters") default: check.errorf(arg, BadDecl, "receiver type parameter %s must be an identifier", arg) } diff --git a/src/go/types/signature.go b/src/go/types/signature.go index d9c32b2287..83460eaf1f 100644 --- a/src/go/types/signature.go +++ b/src/go/types/signature.go @@ -286,7 +286,7 @@ func (check *Checker) collectParams(scope *Scope, list *ast.FieldList, variadicO // named parameter for _, name := range field.Names { if name.Name == "" { - check.error(name, InvalidSyntaxTree, invalidAST+"anonymous parameter") + check.error(name, InvalidSyntaxTree, "anonymous parameter") // ok to continue } par := NewParam(name.Pos(), check.pkg, name.Name, typ) @@ -304,7 +304,7 @@ func (check *Checker) collectParams(scope *Scope, list *ast.FieldList, variadicO } if named && anonymous { - check.error(list, InvalidSyntaxTree, invalidAST+"list contains both named and anonymous parameters") + check.error(list, InvalidSyntaxTree, "list contains both named and anonymous parameters") // ok to continue } diff --git a/src/go/types/stmt.go b/src/go/types/stmt.go index 025844affa..ac6255d42a 100644 --- a/src/go/types/stmt.go +++ b/src/go/types/stmt.go @@ -139,7 +139,7 @@ func (check *Checker) multipleDefaults(list []ast.Stmt) { d = s } default: - check.error(s, InvalidSyntaxTree, invalidAST+"case/communication clause expected") + check.error(s, InvalidSyntaxTree, "case/communication clause expected") } if d != nil { if first != nil { @@ -444,7 +444,7 @@ func (check *Checker) stmt(ctxt stmtContext, s ast.Stmt) { case token.DEC: op = token.SUB default: - check.errorf(inNode(s, s.TokPos), InvalidSyntaxTree, invalidAST+"unknown inc/dec operation %s", s.Tok) + check.errorf(inNode(s, s.TokPos), InvalidSyntaxTree, "unknown inc/dec operation %s", s.Tok) return } @@ -469,7 +469,7 @@ func (check *Checker) stmt(ctxt stmtContext, s ast.Stmt) { switch s.Tok { case token.ASSIGN, token.DEFINE: if len(s.Lhs) == 0 { - check.error(s, InvalidSyntaxTree, invalidAST+"missing lhs in assignment") + check.error(s, InvalidSyntaxTree, "missing lhs in assignment") return } if s.Tok == token.DEFINE { @@ -487,7 +487,7 @@ func (check *Checker) stmt(ctxt stmtContext, s ast.Stmt) { } op := assignOp(s.Tok) if op == token.ILLEGAL { - check.errorf(atPos(s.TokPos), InvalidSyntaxTree, invalidAST+"unknown assignment operation %s", s.Tok) + check.errorf(atPos(s.TokPos), InvalidSyntaxTree, "unknown assignment operation %s", s.Tok) return } var x operand @@ -555,7 +555,7 @@ func (check *Checker) stmt(ctxt stmtContext, s ast.Stmt) { check.error(s, MisplacedFallthrough, msg) } default: - check.errorf(s, InvalidSyntaxTree, invalidAST+"branch statement: %s", s.Tok) + check.errorf(s, InvalidSyntaxTree, "branch statement: %s", s.Tok) } case *ast.BlockStmt: @@ -583,7 +583,7 @@ func (check *Checker) stmt(ctxt stmtContext, s ast.Stmt) { case *ast.IfStmt, *ast.BlockStmt: check.stmt(inner, s.Else) default: - check.error(s.Else, InvalidSyntaxTree, invalidAST+"invalid else branch in if statement") + check.error(s.Else, InvalidSyntaxTree, "invalid else branch in if statement") } case *ast.SwitchStmt: @@ -617,7 +617,7 @@ func (check *Checker) stmt(ctxt stmtContext, s ast.Stmt) { for i, c := range s.Body.List { clause, _ := c.(*ast.CaseClause) if clause == nil { - check.error(c, InvalidSyntaxTree, invalidAST+"incorrect expression switch case") + check.error(c, InvalidSyntaxTree, "incorrect expression switch case") continue } check.caseValues(&x, clause.List, seen) @@ -654,13 +654,13 @@ func (check *Checker) stmt(ctxt stmtContext, s ast.Stmt) { rhs = guard.X case *ast.AssignStmt: if len(guard.Lhs) != 1 || guard.Tok != token.DEFINE || len(guard.Rhs) != 1 { - check.error(s, InvalidSyntaxTree, invalidAST+"incorrect form of type switch guard") + check.error(s, InvalidSyntaxTree, "incorrect form of type switch guard") return } lhs, _ = guard.Lhs[0].(*ast.Ident) if lhs == nil { - check.error(s, InvalidSyntaxTree, invalidAST+"incorrect form of type switch guard") + check.error(s, InvalidSyntaxTree, "incorrect form of type switch guard") return } @@ -675,14 +675,14 @@ func (check *Checker) stmt(ctxt stmtContext, s ast.Stmt) { rhs = guard.Rhs[0] default: - check.error(s, InvalidSyntaxTree, invalidAST+"incorrect form of type switch guard") + check.error(s, InvalidSyntaxTree, "incorrect form of type switch guard") return } // rhs must be of the form: expr.(type) and expr must be an ordinary interface expr, _ := rhs.(*ast.TypeAssertExpr) if expr == nil || expr.Type != nil { - check.error(s, InvalidSyntaxTree, invalidAST+"incorrect form of type switch guard") + check.error(s, InvalidSyntaxTree, "incorrect form of type switch guard") return } var x operand @@ -709,7 +709,7 @@ func (check *Checker) stmt(ctxt stmtContext, s ast.Stmt) { for _, s := range s.Body.List { clause, _ := s.(*ast.CaseClause) if clause == nil { - check.error(s, InvalidSyntaxTree, invalidAST+"incorrect type switch case") + check.error(s, InvalidSyntaxTree, "incorrect type switch case") continue } // Check each type in this type switch case. @@ -893,7 +893,7 @@ func (check *Checker) stmt(ctxt stmtContext, s ast.Stmt) { vars = append(vars, obj) } } else { - check.errorf(lhs, InvalidSyntaxTree, invalidAST+"cannot declare %s", lhs) + check.errorf(lhs, InvalidSyntaxTree, "cannot declare %s", lhs) obj = NewVar(lhs.Pos(), check.pkg, "_", nil) // dummy variable } @@ -936,7 +936,7 @@ func (check *Checker) stmt(ctxt stmtContext, s ast.Stmt) { check.stmt(inner, s.Body) default: - check.error(s, InvalidSyntaxTree, invalidAST+"invalid statement") + check.error(s, InvalidSyntaxTree, "invalid statement") } } diff --git a/src/go/types/struct.go b/src/go/types/struct.go index ec9089ffde..2ed0e6d89a 100644 --- a/src/go/types/struct.go +++ b/src/go/types/struct.go @@ -125,7 +125,7 @@ func (check *Checker) structType(styp *Struct, e *ast.StructType) { pos := f.Type.Pos() name := embeddedFieldIdent(f.Type) if name == nil { - check.errorf(f.Type, InvalidSyntaxTree, invalidAST+"embedded field type %s has no name", f.Type) + check.errorf(f.Type, InvalidSyntaxTree, "embedded field type %s has no name", f.Type) name = ast.NewIdent("_") name.NamePos = pos addInvalid(name, pos) @@ -212,7 +212,7 @@ func (check *Checker) tag(t *ast.BasicLit) string { return val } } - check.errorf(t, InvalidSyntaxTree, invalidAST+"incorrect tag syntax: %q", t.Value) + check.errorf(t, InvalidSyntaxTree, "incorrect tag syntax: %q", t.Value) } return "" } diff --git a/src/go/types/typexpr.go b/src/go/types/typexpr.go index ea8f58c42c..3d1f0b8bbb 100644 --- a/src/go/types/typexpr.go +++ b/src/go/types/typexpr.go @@ -376,7 +376,7 @@ func (check *Checker) typInternal(e0 ast.Expr, def *Named) (T Type) { case ast.RECV: dir = RecvOnly default: - check.errorf(e, InvalidSyntaxTree, invalidAST+"unknown channel direction %d", e.Dir) + check.errorf(e, InvalidSyntaxTree, "unknown channel direction %d", e.Dir) // ok to continue }