From: Robert Griesemer Date: Tue, 26 Jan 2010 19:41:38 +0000 (-0800) Subject: Bug in go/parser when coverting identifier lists. X-Git-Tag: weekly.2010-01-27~27 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=70b92ddad3e9759fe44afe78c1723c874ffc0642;p=gostls13.git Bug in go/parser when coverting identifier lists. Fixes #567. R=rsc CC=golang-dev https://golang.org/cl/195041 --- diff --git a/src/pkg/go/parser/parser.go b/src/pkg/go/parser/parser.go index ef610209e8..45713327df 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 9e37551623..c177b2eb81 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", }