summaryrefslogtreecommitdiff
path: root/src/pkg/go/parser/parser_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'src/pkg/go/parser/parser_test.go')
-rw-r--r--src/pkg/go/parser/parser_test.go37
1 files changed, 21 insertions, 16 deletions
diff --git a/src/pkg/go/parser/parser_test.go b/src/pkg/go/parser/parser_test.go
index 01327a41d..56bd80ef1 100644
--- a/src/pkg/go/parser/parser_test.go
+++ b/src/pkg/go/parser/parser_test.go
@@ -5,12 +5,14 @@
package parser
import (
- "go/ast"
+ "go/token"
"os"
"testing"
)
+var fset = token.NewFileSet()
+
var illegalInputs = []interface{}{
nil,
3.14,
@@ -21,7 +23,7 @@ var illegalInputs = []interface{}{
func TestParseIllegalInputs(t *testing.T) {
for _, src := range illegalInputs {
- _, err := ParseFile("", src, nil, 0)
+ _, err := ParseFile(fset, "", src, 0)
if err == nil {
t.Errorf("ParseFile(%v) should have failed", src)
}
@@ -30,23 +32,26 @@ func TestParseIllegalInputs(t *testing.T) {
var validPrograms = []interface{}{
+ "package main\n",
`package main;`,
- `package main; import "fmt"; func main() { fmt.Println("Hello, World!") }` + "\n",
- `package main; func main() { if f(T{}) {} }` + "\n",
- `package main; func main() { _ = (<-chan int)(x) }` + "\n",
- `package main; func main() { _ = (<-chan <-chan int)(x) }` + "\n",
- `package main; func f(func() func() func())` + "\n",
- `package main; func f(...)` + "\n",
- `package main; func f(float, ...int)` + "\n",
- `package main; type T []int; var a []bool; func f() { if a[T{42}[0]] {} }` + "\n",
- `package main; type T []int; func g(int) bool { return true }; func f() { if g(T{42}[0]) {} }` + "\n",
- `package main; type T []int; func f() { for _ = range []int{T{42}[0]} {} }` + "\n",
+ `package main; import "fmt"; func main() { fmt.Println("Hello, World!") };`,
+ `package main; func main() { if f(T{}) {} };`,
+ `package main; func main() { _ = (<-chan int)(x) };`,
+ `package main; func main() { _ = (<-chan <-chan int)(x) };`,
+ `package main; func f(func() func() func());`,
+ `package main; func f(...T);`,
+ `package main; func f(float, ...int);`,
+ `package main; func f(x int, a ...int) { f(0, a...); f(1, a...,) };`,
+ `package main; type T []int; var a []bool; func f() { if a[T{42}[0]] {} };`,
+ `package main; type T []int; func g(int) bool { return true }; func f() { if g(T{42}[0]) {} };`,
+ `package main; type T []int; func f() { for _ = range []int{T{42}[0]} {} };`,
+ `package main; var a = T{{1, 2}, {3, 4}}`,
}
func TestParseValidPrograms(t *testing.T) {
for _, src := range validPrograms {
- _, err := ParseFile("", src, ast.NewScope(nil), 0)
+ _, err := ParseFile(fset, "", src, 0)
if err != nil {
t.Errorf("ParseFile(%q): %v", src, err)
}
@@ -62,7 +67,7 @@ var validFiles = []string{
func TestParse3(t *testing.T) {
for _, filename := range validFiles {
- _, err := ParseFile(filename, nil, ast.NewScope(nil), 0)
+ _, err := ParseFile(fset, filename, nil, 0)
if err != nil {
t.Errorf("ParseFile(%s): %v", filename, err)
}
@@ -87,7 +92,7 @@ func dirFilter(f *os.FileInfo) bool { return nameFilter(f.Name) }
func TestParse4(t *testing.T) {
path := "."
- pkgs, err := ParseDir(path, dirFilter, 0)
+ pkgs, err := ParseDir(fset, path, dirFilter, 0)
if err != nil {
t.Fatalf("ParseDir(%s): %v", path, err)
}
@@ -99,7 +104,7 @@ func TestParse4(t *testing.T) {
t.Errorf(`package "parser" not found`)
return
}
- for filename, _ := range pkg.Files {
+ for filename := range pkg.Files {
if !nameFilter(filename) {
t.Errorf("unexpected package file: %s", filename)
}