Source file
test/fixedbugs/issue43384.go
1
2
3
4
5
6
7 package p
8
9 type T int
10
11 func (T) Mv() {}
12 func (*T) Mp() {}
13
14 type P1 struct{ T }
15 type P2 struct{ *T }
16 type P3 *struct{ T }
17 type P4 *struct{ *T }
18
19 func _() {
20 {
21 var p P1
22 p.Mv()
23 (&p).Mv()
24 (*&p).Mv()
25 p.Mp()
26 (&p).Mp()
27 (*&p).Mp()
28 }
29 {
30 var p P2
31 p.Mv()
32 (&p).Mv()
33 (*&p).Mv()
34 p.Mp()
35 (&p).Mp()
36 (*&p).Mp()
37 }
38 {
39 var p P3
40 p.Mv()
41 (&p).Mv()
42 (*&p).Mv()
43 (**&p).Mv()
44 (*p).Mv()
45 (&*p).Mv()
46 p.Mp()
47 (&p).Mp()
48 (*&p).Mp()
49 (**&p).Mp()
50 (*p).Mp()
51 (&*p).Mp()
52 }
53 {
54 var p P4
55 p.Mv()
56 (&p).Mv()
57 (*&p).Mv()
58 (**&p).Mv()
59 (*p).Mv()
60 (&*p).Mv()
61 p.Mp()
62 (&p).Mp()
63 (*&p).Mp()
64 (**&p).Mp()
65 (*p).Mp()
66 (&*p).Mp()
67 }
68 }
69
70 func _() {
71 type P5 struct{ T }
72 type P6 struct{ *T }
73 type P7 *struct{ T }
74 type P8 *struct{ *T }
75
76 {
77 var p P5
78 p.Mv()
79 (&p).Mv()
80 (*&p).Mv()
81 p.Mp()
82 (&p).Mp()
83 (*&p).Mp()
84 }
85 {
86 var p P6
87 p.Mv()
88 (&p).Mv()
89 (*&p).Mv()
90 p.Mp()
91 (&p).Mp()
92 (*&p).Mp()
93 }
94 {
95 var p P7
96 p.Mv()
97 (&p).Mv()
98 (*&p).Mv()
99 (**&p).Mv()
100 (*p).Mv()
101 (&*p).Mv()
102 p.Mp()
103 (&p).Mp()
104 (*&p).Mp()
105 (**&p).Mp()
106 (*p).Mp()
107 (&*p).Mp()
108 }
109 {
110 var p P8
111 p.Mv()
112 (&p).Mv()
113 (*&p).Mv()
114 (**&p).Mv()
115 (*p).Mv()
116 (&*p).Mv()
117 p.Mp()
118 (&p).Mp()
119 (*&p).Mp()
120 (**&p).Mp()
121 (*p).Mp()
122 (&*p).Mp()
123 }
124 }
125
View as plain text