mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00:00
[dev.inline] cmd/compile/internal/syntax: process //line pragmas in scanner
Reviewed in and cherry-picked from https://go-review.googlesource.com/#/c/33764/. Minor adjustment in noder.go to make merge compile again. Change-Id: Ib5029b52b59944f207b0f2438c8a5aa576eb25b8 Reviewed-on: https://go-review.googlesource.com/34233 Run-TryBot: Robert Griesemer <gri@golang.org> Reviewed-by: Matthew Dempsky <mdempsky@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org>
This commit is contained in:
parent
8d20b25779
commit
32bf2829a1
8 changed files with 89 additions and 54 deletions
|
|
@ -22,7 +22,7 @@ func TestScanner(t *testing.T) {
|
|||
defer src.Close()
|
||||
|
||||
var s scanner
|
||||
s.init(src, nil, nil)
|
||||
s.init("parser.go", src, nil, nil)
|
||||
for {
|
||||
s.next()
|
||||
if s.tok == _EOF {
|
||||
|
|
@ -51,7 +51,7 @@ func TestTokens(t *testing.T) {
|
|||
|
||||
// scan source
|
||||
var got scanner
|
||||
got.init(&bytesReader{buf}, nil, nil)
|
||||
got.init("", &bytesReader{buf}, nil, nil)
|
||||
got.next()
|
||||
for i, want := range sampleTokens {
|
||||
nlsemi := false
|
||||
|
|
@ -317,12 +317,20 @@ func TestScanErrors(t *testing.T) {
|
|||
{`var s string = "\x"`, "non-hex character in escape sequence: \"", 1, 19},
|
||||
{`return "\Uffffffff"`, "escape sequence is invalid Unicode code point", 1, 19},
|
||||
|
||||
{`//line :`, "invalid line number: ", 1, 9},
|
||||
{`//line :x`, "invalid line number: x", 1, 9},
|
||||
{`//line foo :`, "invalid line number: ", 1, 13},
|
||||
{`//line foo:123abc`, "invalid line number: 123abc", 1, 12},
|
||||
{`/**///line foo:x`, "invalid line number: x", 1, 16},
|
||||
{`//line foo:0`, "invalid line number: 0", 1, 12},
|
||||
{fmt.Sprintf(`//line foo:%d`, lineM+1), fmt.Sprintf("invalid line number: %d", lineM+1), 1, 12},
|
||||
|
||||
// former problem cases
|
||||
{"package p\n\n\xef", "invalid UTF-8 encoding", 3, 1},
|
||||
} {
|
||||
var s scanner
|
||||
nerrors := 0
|
||||
s.init(&bytesReader{[]byte(test.src)}, func(err error) {
|
||||
s.init("", &bytesReader{[]byte(test.src)}, func(err error) {
|
||||
nerrors++
|
||||
// only check the first error
|
||||
e := err.(Error) // we know it's an Error
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue