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