mirror of
https://github.com/golang/go
synced 2024-11-22 05:04:40 -07:00
go/printer: fix printing of variadic function calls
Fixes #3130. R=golang-dev, gri CC=golang-dev https://golang.org/cl/5697062
This commit is contained in:
parent
5573fa3bc5
commit
eafe86c2df
@ -804,9 +804,14 @@ func (p *printer) expr1(expr ast.Expr, prec1, depth int, multiLine *bool) {
|
|||||||
}
|
}
|
||||||
p.expr1(x.Fun, token.HighestPrec, depth, multiLine)
|
p.expr1(x.Fun, token.HighestPrec, depth, multiLine)
|
||||||
p.print(x.Lparen, token.LPAREN)
|
p.print(x.Lparen, token.LPAREN)
|
||||||
p.exprList(x.Lparen, x.Args, depth, commaSep|commaTerm, multiLine, x.Rparen)
|
|
||||||
if x.Ellipsis.IsValid() {
|
if x.Ellipsis.IsValid() {
|
||||||
|
p.exprList(x.Lparen, x.Args, depth, commaSep, multiLine, x.Ellipsis)
|
||||||
p.print(x.Ellipsis, token.ELLIPSIS)
|
p.print(x.Ellipsis, token.ELLIPSIS)
|
||||||
|
if x.Rparen.IsValid() && p.lineFor(x.Ellipsis) < p.lineFor(x.Rparen) {
|
||||||
|
p.print(token.COMMA, formfeed)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
p.exprList(x.Lparen, x.Args, depth, commaSep|commaTerm, multiLine, x.Rparen)
|
||||||
}
|
}
|
||||||
p.print(x.Rparen, token.RPAREN)
|
p.print(x.Rparen, token.RPAREN)
|
||||||
|
|
||||||
|
22
src/pkg/go/printer/testdata/expressions.golden
vendored
22
src/pkg/go/printer/testdata/expressions.golden
vendored
@ -625,3 +625,25 @@ func f() {
|
|||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Handle multi-line argument lists ending in ... correctly.
|
||||||
|
// Was issue 3130.
|
||||||
|
func _() {
|
||||||
|
_ = append(s, a...)
|
||||||
|
_ = append(
|
||||||
|
s, a...)
|
||||||
|
_ = append(s,
|
||||||
|
a...)
|
||||||
|
_ = append(
|
||||||
|
s,
|
||||||
|
a...)
|
||||||
|
_ = append(s, a...,
|
||||||
|
)
|
||||||
|
_ = append(s,
|
||||||
|
a...,
|
||||||
|
)
|
||||||
|
_ = append(
|
||||||
|
s,
|
||||||
|
a...,
|
||||||
|
)
|
||||||
|
}
|
||||||
|
22
src/pkg/go/printer/testdata/expressions.input
vendored
22
src/pkg/go/printer/testdata/expressions.input
vendored
@ -654,3 +654,25 @@ func f() {
|
|||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Handle multi-line argument lists ending in ... correctly.
|
||||||
|
// Was issue 3130.
|
||||||
|
func _() {
|
||||||
|
_ = append(s, a...)
|
||||||
|
_ = append(
|
||||||
|
s, a...)
|
||||||
|
_ = append(s,
|
||||||
|
a...)
|
||||||
|
_ = append(
|
||||||
|
s,
|
||||||
|
a...)
|
||||||
|
_ = append(s, a...,
|
||||||
|
)
|
||||||
|
_ = append(s,
|
||||||
|
a...,
|
||||||
|
)
|
||||||
|
_ = append(
|
||||||
|
s,
|
||||||
|
a...,
|
||||||
|
)
|
||||||
|
}
|
||||||
|
22
src/pkg/go/printer/testdata/expressions.raw
vendored
22
src/pkg/go/printer/testdata/expressions.raw
vendored
@ -625,3 +625,25 @@ func f() {
|
|||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Handle multi-line argument lists ending in ... correctly.
|
||||||
|
// Was issue 3130.
|
||||||
|
func _() {
|
||||||
|
_ = append(s, a...)
|
||||||
|
_ = append(
|
||||||
|
s, a...)
|
||||||
|
_ = append(s,
|
||||||
|
a...)
|
||||||
|
_ = append(
|
||||||
|
s,
|
||||||
|
a...)
|
||||||
|
_ = append(s, a...,
|
||||||
|
)
|
||||||
|
_ = append(s,
|
||||||
|
a...,
|
||||||
|
)
|
||||||
|
_ = append(
|
||||||
|
s,
|
||||||
|
a...,
|
||||||
|
)
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user