mirror of
https://github.com/golang/go
synced 2024-11-24 20:30:14 -07:00
cmd/compile: remove parser lineno hack for issue #13267
After golang.org/cl/19652 removed the bizarre lexlineno{++,--} statements for parsing canned imports, this hack for #13267 is no longer necessary: $ echo -n 0 > /tmp/0.go $ go tool compile /tmp/0.go /tmp/0.go:1: syntax error: package statement must be first Apparently setting lexlineno to 2 while parsing the canned imports caused prevlineno and lineno to also be set to 2. After we finished parsing imports and restored lexlineno to 1, since "package" is the first token in a source file, we'll have fixed lineno = 1, but prevlineno was still set to 2. Change-Id: Ibcc49fe3402264819b9abb53505631f7a0ad4a36 Reviewed-on: https://go-review.googlesource.com/19859 Reviewed-by: Robert Griesemer <gri@golang.org>
This commit is contained in:
parent
e360f7c4db
commit
1e4e09612c
@ -280,13 +280,11 @@ func (p *parser) package_() {
|
|||||||
defer p.trace("package_")()
|
defer p.trace("package_")()
|
||||||
}
|
}
|
||||||
|
|
||||||
if p.got(LPACKAGE) {
|
if !p.got(LPACKAGE) {
|
||||||
mkpackage(p.sym().Name)
|
|
||||||
} else {
|
|
||||||
prevlineno = lineno // see issue #13267
|
|
||||||
p.syntax_error("package statement must be first")
|
p.syntax_error("package statement must be first")
|
||||||
errorexit()
|
errorexit()
|
||||||
}
|
}
|
||||||
|
mkpackage(p.sym().Name)
|
||||||
}
|
}
|
||||||
|
|
||||||
// ImportDecl = "import" ( ImportSpec | "(" { ImportSpec ";" } ")" ) .
|
// ImportDecl = "import" ( ImportSpec | "(" { ImportSpec ";" } ")" ) .
|
||||||
|
Loading…
Reference in New Issue
Block a user