mirror of
https://github.com/golang/go
synced 2024-10-02 14:38:33 -06:00
go/parser: improved error message for unexpected literals
R=go1.11 This is a follow up for #11377 which reported that an error like /tmp/xx.go:9:6: expected '(', found 'IDENT' F1 shouldn't print 'IDENT', as it's just an internal detail. The relevant change wasn't made in the original fix, so here it is. For #11377. Change-Id: Ib76957d86b88e3e63646fbe4abf03a3b9d045139 Reviewed-on: https://go-review.googlesource.com/87900 Reviewed-by: Matthew Dempsky <mdempsky@google.com>
This commit is contained in:
parent
5408d79950
commit
7ac393a3f2
@ -375,13 +375,14 @@ func (p *parser) errorExpected(pos token.Pos, msg string) {
|
||||
if pos == p.pos {
|
||||
// the error happened at the current position;
|
||||
// make the error message more specific
|
||||
if p.tok == token.SEMICOLON && p.lit == "\n" {
|
||||
switch {
|
||||
case p.tok == token.SEMICOLON && p.lit == "\n":
|
||||
msg += ", found newline"
|
||||
} else {
|
||||
case p.tok.IsLiteral():
|
||||
// print 123 rather than 'INT', etc.
|
||||
msg += ", found " + p.lit
|
||||
default:
|
||||
msg += ", found '" + p.tok.String() + "'"
|
||||
if p.tok.IsLiteral() {
|
||||
msg += " " + p.lit
|
||||
}
|
||||
}
|
||||
}
|
||||
p.error(pos, msg)
|
||||
|
Loading…
Reference in New Issue
Block a user