1//gofmt -r=(x)->x 2 3// Copyright 2012 The Go Authors. All rights reserved. 4// Use of this source code is governed by a BSD-style 5// license that can be found in the LICENSE file. 6 7// Rewriting of parenthesized expressions (x) -> x 8// must not drop parentheses if that would lead to 9// wrong association of the operands. 10// Was issue 1847. 11 12package main 13 14// From example 1 of issue 1847. 15func _() { 16 var t = (&T{1000}).Id() 17} 18 19// From example 2 of issue 1847. 20func _() { 21 fmt.Println((*xpp).a) 22} 23 24// Some more test cases. 25func _() { 26 _ = (-x).f 27 _ = (*x).f 28 _ = (&x).f 29 _ = (!x).f 30 _ = -x.f 31 _ = *x.f 32 _ = &x.f 33 _ = !x.f 34 (-x).f() 35 (*x).f() 36 (&x).f() 37 (!x).f() 38 _ = -x.f() 39 _ = *x.f() 40 _ = &x.f() 41 _ = !x.f() 42 43 _ = (-x).f 44 _ = (*x).f 45 _ = (&x).f 46 _ = (!x).f 47 _ = -x.f 48 _ = *x.f 49 _ = &x.f 50 _ = !x.f 51 (-x).f() 52 (*x).f() 53 (&x).f() 54 (!x).f() 55 _ = -x.f() 56 _ = *x.f() 57 _ = &x.f() 58 _ = !x.f() 59 60 _ = -x.f 61 _ = *x.f 62 _ = &x.f 63 _ = !x.f 64 _ = -x.f 65 _ = *x.f 66 _ = &x.f 67 _ = !x.f 68 _ = -x.f() 69 _ = *x.f() 70 _ = &x.f() 71 _ = !x.f() 72 _ = -x.f() 73 _ = *x.f() 74 _ = &x.f() 75 _ = !x.f() 76} 77