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