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
12 package main
13
14 // From example 1 of issue 1847.
15 func _() {
16 var t = (&T{1000}).Id()
17 }
18
19 // From example 2 of issue 1847.
20 func _() {
21 fmt.Println((*xpp).a)
22 }
23
24 // Some more test cases.
25 func _() {
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
View as plain text