| //gofmt -r=(x)->x | |
| // Copyright 2012 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. | |
| // Rewriting of parenthesized expressions (x) -> x | |
| // must not drop parentheses if that would lead to | |
| // wrong association of the operands. | |
| // Was issue 1847. | |
| package main | |
| // From example 1 of issue 1847. | |
| func _() { | |
| var t = (&T{1000}).Id() | |
| } | |
| // From example 2 of issue 1847. | |
| func _() { | |
| fmt.Println((*xpp).a) | |
| } | |
| // Some more test cases. | |
| func _() { | |
| _ = (-x).f | |
| _ = (*x).f | |
| _ = (&x).f | |
| _ = (!x).f | |
| _ = (-x.f) | |
| _ = (*x.f) | |
| _ = (&x.f) | |
| _ = (!x.f) | |
| (-x).f() | |
| (*x).f() | |
| (&x).f() | |
| (!x).f() | |
| _ = (-x.f()) | |
| _ = (*x.f()) | |
| _ = (&x.f()) | |
| _ = (!x.f()) | |
| _ = ((-x)).f | |
| _ = ((*x)).f | |
| _ = ((&x)).f | |
| _ = ((!x)).f | |
| _ = ((-x.f)) | |
| _ = ((*x.f)) | |
| _ = ((&x.f)) | |
| _ = ((!x.f)) | |
| ((-x)).f() | |
| ((*x)).f() | |
| ((&x)).f() | |
| ((!x)).f() | |
| _ = ((-x.f())) | |
| _ = ((*x.f())) | |
| _ = ((&x.f())) | |
| _ = ((!x.f())) | |
| _ = -(x).f | |
| _ = *(x).f | |
| _ = &(x).f | |
| _ = !(x).f | |
| _ = -x.f | |
| _ = *x.f | |
| _ = &x.f | |
| _ = !x.f | |
| _ = -(x).f() | |
| _ = *(x).f() | |
| _ = &(x).f() | |
| _ = !(x).f() | |
| _ = -x.f() | |
| _ = *x.f() | |
| _ = &x.f() | |
| _ = !x.f() | |
| } | |