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