-
Notifications
You must be signed in to change notification settings - Fork 18.7k
Closed
Labels
Description
by ehog.hedge:
What steps will reproduce the problem?
Compile this code:
(((((((((((((((((((((((((((((((((
package main
type Int struct{value int}
func ok( spoo Int ) {
_ = Int{1}
}
func bad( spoo (Int) ) {
_ = Int{1}
}
)))))))))))))))))))))))))))
What is the expected output?
Silent (successful) compilation.
What do you see instead?
main.go:7: cannot parenthesize type in composite literal
Setup:
GOOS=linux GOARCH=amd64
Which revision are you using? (hg identify)
52b9b58d0cfa+ tip
This problem initially revealed itself when the argument types were
more complex -- chan(Int) or [](Int) -- but it's reduceable to just
the (superfluous, at least in this example) bracketing.
Exchanging the two function definition causes the error to additionally
appear inside ok as well as bad.
It /looks/ like the bracketing is being injected into the type at its
first appearance and persists after that.
Chris