|  | //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() | 
|  | } |