diff options
author | Robert Griesemer <gri@golang.org> | 2010-02-16 10:19:51 -0800 |
---|---|---|
committer | Robert Griesemer <gri@golang.org> | 2010-02-16 10:19:51 -0800 |
commit | 2f816d5b7396b96312ba43e827b44b95474073a3 (patch) | |
tree | b9c86ab68d0165eb2fe7c4c0cdbe7cb417c2223b | |
parent | e7fc5c278984783bf8f718974561853b732154c7 (diff) | |
download | go-2f816d5b7396b96312ba43e827b44b95474073a3.tar.gz go-2f816d5b7396b96312ba43e827b44b95474073a3.zip |
Don't print ()'s around a range clause's expression.
Fixes #605.
R=rsc
CC=golang-dev
https://golang.org/cl/207108
-rw-r--r-- | src/pkg/go/printer/nodes.go | 3 | ||||
-rw-r--r-- | src/pkg/go/printer/testdata/statements.golden | 3 | ||||
-rw-r--r-- | src/pkg/go/printer/testdata/statements.input | 1 |
3 files changed, 6 insertions, 1 deletions
diff --git a/src/pkg/go/printer/nodes.go b/src/pkg/go/printer/nodes.go index 65b19e9f5d..218ad765d8 100644 --- a/src/pkg/go/printer/nodes.go +++ b/src/pkg/go/printer/nodes.go @@ -671,6 +671,7 @@ func (p *printer) expr1(expr ast.Expr, prec1, depth int, ctxt exprContext, multi // no parenthesis needed p.print(x.Op) if x.Op == token.RANGE { + // TODO(gri) Remove this code if it cannot be reached. p.print(blank) } p.expr1(x.X, prec, depth, 0, multiLine) @@ -1075,7 +1076,7 @@ func (p *printer) stmt(stmt ast.Stmt, multiLine *bool) { p.expr(s.Value, multiLine) } p.print(blank, s.TokPos, s.Tok, blank, token.RANGE, blank) - p.expr(s.X, multiLine) + p.expr(stripParens(s.X), multiLine) p.print(blank) p.block(s.Body, 1, true) *multiLine = true diff --git a/src/pkg/go/printer/testdata/statements.golden b/src/pkg/go/printer/testdata/statements.golden index b7d8ad2ea1..86d8282cd7 100644 --- a/src/pkg/go/printer/testdata/statements.golden +++ b/src/pkg/go/printer/testdata/statements.golden @@ -144,6 +144,9 @@ func _() { for x := range []int{} { use(x) } + for x := range []int{} { + use(x) + } // no parens printed } diff --git a/src/pkg/go/printer/testdata/statements.input b/src/pkg/go/printer/testdata/statements.input index a6efba7c64..061f7f3205 100644 --- a/src/pkg/go/printer/testdata/statements.input +++ b/src/pkg/go/printer/testdata/statements.input @@ -107,6 +107,7 @@ func _() { } for x := expr;expr;expr = false { use(x) } for x := range []int{} { use(x) } + for x := range (([]int{})) { use(x) } // no parens printed } |