mirror of
https://github.com/golang/go
synced 2024-11-14 08:30:25 -07:00
5500d46914
Handling of &(T{}) assumed that the parser would not introduce ()'s. Also: Better comments around handling of OPAREN syntax tree optimization. Fixes #13261. Change-Id: Ifc5047a0448f5e7d74cd42f6608b87dcc9c2f2fb Reviewed-on: https://go-review.googlesource.com/17040 Reviewed-by: Chris Manghane <cmang@golang.org>
30 lines
521 B
Go
30 lines
521 B
Go
// compile
|
|
|
|
// Copyright 2015 The Go Authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style
|
|
// license that can be found in the LICENSE file.
|
|
|
|
// Taking the address of a parenthesized composite literal is permitted.
|
|
|
|
package main
|
|
|
|
type T struct{}
|
|
|
|
func main() {
|
|
_ = &T{}
|
|
_ = &(T{})
|
|
_ = &((T{}))
|
|
|
|
_ = &struct{}{}
|
|
_ = &(struct{}{})
|
|
_ = &((struct{}{}))
|
|
|
|
switch (&T{}) {}
|
|
switch &(T{}) {}
|
|
switch &((T{})) {}
|
|
|
|
switch &struct{}{} {}
|
|
switch &(struct{}{}) {}
|
|
switch &((struct{}{})) {}
|
|
}
|