Commit 333167ff authored by Robert Griesemer's avatar Robert Griesemer

go/printer, gofmt: print "select {}" on one line

No impact on existing sources under src, misc.

Fixes #1959.

R=r, rsc, r
CC=golang-dev
https://golang.org/cl/4589056
parent 5d9dbe19
......@@ -1158,8 +1158,14 @@ func (p *printer) stmt(stmt ast.Stmt, nextIsRBrace bool, multiLine *bool) {
case *ast.SelectStmt:
p.print(token.SELECT, blank)
p.block(s.Body, 0)
*multiLine = true
body := s.Body
if len(body.List) == 0 && !p.commentBefore(p.fset.Position(body.Rbrace)) {
// print empty select statement w/o comments on one line
p.print(body.Lbrace, token.LBRACE, body.Rbrace, token.RBRACE)
} else {
p.block(body, 0)
*multiLine = true
}
case *ast.ForStmt:
p.print(token.FOR)
......
......@@ -111,6 +111,21 @@ func _() {
}
// Formatting of selected select statements.
func _() {
select {}
select { /* this comment should not be tab-aligned because the closing } is on the same line */
}
select { /* this comment should be tab-aligned */
}
select { // this comment should be tab-aligned
}
select {
case <-c:
}
}
// Formatting of for-statement headers.
func _() {
for {
......
......@@ -91,6 +91,19 @@ func _() {
}
// Formatting of selected select statements.
func _() {
select {
}
select { /* this comment should not be tab-aligned because the closing } is on the same line */ }
select { /* this comment should be tab-aligned */
}
select { // this comment should be tab-aligned
}
select { case <-c: }
}
// Formatting of for-statement headers.
func _() {
for{}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment