diff options
author | Robert Griesemer <gri@golang.org> | 2010-01-26 11:41:38 -0800 |
---|---|---|
committer | Robert Griesemer <gri@golang.org> | 2010-01-26 11:41:38 -0800 |
commit | adf21f0484ab001cb2471da716bcc03a97f2b526 (patch) | |
tree | afa2de866748787a2c7401b90faaa9f21e7cb540 | |
parent | b1a2356951dcb5b639299684da6bfab76fc918e4 (diff) | |
download | golang-adf21f0484ab001cb2471da716bcc03a97f2b526.tar.gz |
Bug in go/parser when coverting identifier lists.
Fixes issue 567.
R=rsc
CC=golang-dev
http://codereview.appspot.com/195041
-rw-r--r-- | src/pkg/go/parser/parser.go | 2 | ||||
-rw-r--r-- | src/pkg/go/parser/parser_test.go | 1 |
2 files changed, 2 insertions, 1 deletions
diff --git a/src/pkg/go/parser/parser.go b/src/pkg/go/parser/parser.go index ef610209e..45713327d 100644 --- a/src/pkg/go/parser/parser.go +++ b/src/pkg/go/parser/parser.go @@ -464,7 +464,7 @@ func (p *parser) makeIdentList(list *vector.Vector) []*ast.Ident { if !isIdent { pos := x.(ast.Expr).Pos() p.errorExpected(pos, "identifier") - idents[i] = &ast.Ident{pos, ast.NewObj(ast.Err, pos, "")} + ident = &ast.Ident{pos, ast.NewObj(ast.Err, pos, "_")} } idents[i] = ident } diff --git a/src/pkg/go/parser/parser_test.go b/src/pkg/go/parser/parser_test.go index 9e3755162..c177b2eb8 100644 --- a/src/pkg/go/parser/parser_test.go +++ b/src/pkg/go/parser/parser_test.go @@ -34,6 +34,7 @@ var validPrograms = []interface{}{ `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() int))` + "\n", } |