...
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}
View as plain text