aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/compile/internal/syntax/scanner_test.go
diff options
context:
space:
mode:
authorRobert Griesemer <gri@golang.org>2016-11-30 23:28:40 -0800
committerRobert Griesemer <gri@golang.org>2016-12-09 00:43:04 +0000
commit32bf2829a17a90bdbd472335707639ba35776da6 (patch)
treed40b974e80f953388fee9320a53fcde833e6e2fb /src/cmd/compile/internal/syntax/scanner_test.go
parent8d20b25779d4ce32e8eaeb52374fba1e74f7df57 (diff)
downloadgo-32bf2829a17a90bdbd472335707639ba35776da6.tar.gz
go-32bf2829a17a90bdbd472335707639ba35776da6.zip
[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>
Diffstat (limited to 'src/cmd/compile/internal/syntax/scanner_test.go')
-rw-r--r--src/cmd/compile/internal/syntax/scanner_test.go14
1 files changed, 11 insertions, 3 deletions
diff --git a/src/cmd/compile/internal/syntax/scanner_test.go b/src/cmd/compile/internal/syntax/scanner_test.go
index 4c00ddc5d6..b319e2c354 100644
--- a/src/cmd/compile/internal/syntax/scanner_test.go
+++ b/src/cmd/compile/internal/syntax/scanner_test.go
@@ -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