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 <gri@google.com>
Auto-Submit: Robert Griesemer <gri@google.com>
Reviewed-by: Robert Findley <rfindley@google.com>
Reviewed-by: Robert Griesemer <gri@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
This commit is contained in:
Robert Griesemer 2022-10-10 13:55:40 -07:00 committed by Gopher Robot
parent 1a7f08cf40
commit 19095e109d
22 changed files with 68 additions and 63 deletions

View File

@ -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)
}
}
}

View File

@ -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: "
)

View File

@ -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,

View File

@ -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

View File

@ -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
}

View File

@ -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
}

View File

@ -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)
}

View File

@ -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
}

View File

@ -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
}

View File

@ -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 ""
}

View File

@ -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
}

View File

@ -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())
}
})
}

View File

@ -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: "
)

View File

@ -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,

View File

@ -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 {

View File

@ -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
}

View File

@ -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
}

View File

@ -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)
}

View File

@ -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
}

View File

@ -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")
}
}

View File

@ -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 ""
}

View File

@ -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
}