]> git.proxmox.com Git - rustc.git/blob - src/test/debuginfo/step-into-match.rs
New upstream version 1.56.0~beta.4+dfsg1
[rustc.git] / src / test / debuginfo / step-into-match.rs
1 // compile-flags: -g
2 // ignore-android: FIXME(#10381)
3
4 // === GDB TESTS ==============================================================
5
6 // gdb-command: r
7
8 // gdb-command: s
9 // gdb-check:[...]match x {
10
11 // gdb-command: s
12 // gdb-check:[...] Some(42) => 1,
13
14 // gdb-command: s
15 // gdb-check:[...]}
16
17 // gdb-command: s
18 // gdb-check:[...]match_enum(Some(12));
19
20 // gdb-command: s
21 // gdb-check:[...]match x {
22
23 // gdb-command: s
24 // gdb-check:[...]Some(_) => 2,
25
26 // gdb-command: s
27 // gdb-check:[...]}
28
29 // gdb-command: s
30 // gdb-check:[...]match_enum(None);
31
32 // gdb-command: s
33 // gdb-check:[...]match x {
34
35 // gdb-command: s
36 // gdb-check:[...]None => 3,
37
38 // gdb-command: s
39 // gdb-check:[...]}
40
41 // gdb-command: s
42 // gdb-check:[...]match_int(1);
43
44 // gdb-command: s
45 // gdb-check:[...]match y {
46
47 // gdb-command: s
48 // gdb-check:[...]1 => 3,
49
50 // gdb-command: s
51 // gdb-check:[...]}
52
53 // gdb-command: s
54 // gdb-check:[...]match_int(2);
55
56 // gdb-command: s
57 // gdb-check:[...]match y {
58
59 // gdb-command: s
60 // gdb-check:[...]_ => 4,
61
62 // gdb-command: s
63 // gdb-check:[...]}
64
65 // gdb-command: s
66 // gdb-check:[...]match_int(0);
67
68 // gdb-command: s
69 // gdb-check:[...]match y {
70
71 // gdb-command: s
72 // gdb-check:[...]0 => 2,
73
74 // gdb-command: s
75 // gdb-check:[...]}
76
77 // gdb-command: s
78 // gdb-check:[...]match_int(-1);
79
80 // gdb-command: s
81 // gdb-check:[...]match y {
82
83 // gdb-command: s
84 // gdb-check:[...]-1 => 1,
85
86 // gdb-command: s
87 // gdb-check:[...]}
88
89 // gdb-command: s
90 // gdb-check:[...]match_tuple(5, 12);
91
92 // gdb-command: s
93 // gdb-check:[...]match (a, b) {
94
95 // gdb-command: s
96 // gdb-check:[...](5, 12) => 3,
97
98 // gdb-command: s
99 // gdb-check:[...]}
100
101 // gdb-command: s
102 // gdb-check:[...]match_tuple(29, 1);
103
104 // gdb-command: s
105 // gdb-check:[...]match (a, b) {
106
107 // gdb-command: s
108 // gdb-check:[...](29, _) => 2,
109
110 // gdb-command: s
111 // gdb-check:[...]}
112
113 // gdb-command: s
114 // gdb-check:[...]match_tuple(12, 12);
115
116 // gdb-command: s
117 // gdb-check:[...]match (a, b) {
118
119 // gdb-command: s
120 // gdb-check:[...](_, _) => 5
121
122 // gdb-command: s
123 // gdb-check:[...]}
124
125 // gdb-command: s
126 // gdb-check:[...]match_tuple(42, 12);
127
128 // gdb-command: s
129 // gdb-check:[...]match (a, b) {
130
131 // gdb-command: s
132 // gdb-check:[...](42, 12) => 1,
133
134 // gdb-command: s
135 // gdb-check:[...]}
136
137 // gdb-command: s
138 // gdb-check:[...]match_tuple(1, 9);
139
140 // gdb-command: s
141 // gdb-check:[...]match (a, b) {
142
143 // gdb-command: s
144 // gdb-check:[...](_, 9) => 4,
145
146 // gdb-command: s
147 // gdb-check:[...]}
148
149 // gdb-command: s
150 // gdb-check:[...]}
151
152 // === CDB TESTS ==============================================================
153
154 // Enable line-based debugging and print lines after stepping.
155 // cdb-command: .lines -e
156 // cdb-command: l+s
157 // cdb-command: l+t
158
159 // cdb-command: g
160
161 // cdb-command: t
162 // cdb-check: [...]: fn match_enum(x: Option<u32>) -> u8 {
163
164 // cdb-command: t
165 // cdb-check: [...]: match x {
166
167 // cdb-command: t
168 // cdb-check: [...]: Some(42) => 1,
169
170 // cdb-command: t
171 // cdb-check: [...]: }
172
173 // cdb-command: t
174 // cdb-check: [...]: match_enum(Some(12));
175
176 // cdb-command: t
177 // cdb-check: [...]: fn match_enum(x: Option<u32>) -> u8 {
178
179 // cdb-command: t
180 // cdb-check: [...]: match x {
181
182 // cdb-command: t
183 // cdb-check: [...]: Some(_) => 2,
184
185 // cdb-command: t
186 // cdb-check: [...]: }
187
188 // cdb-command: t
189 // cdb-check: [...]: match_enum(None);
190
191 // cdb-command: t
192 // cdb-check: [...]: fn match_enum(x: Option<u32>) -> u8 {
193
194 // cdb-command: t
195 // cdb-check: [...]: match x {
196
197 // cdb-command: t
198 // cdb-check: [...]: None => 3,
199
200 // cdb-command: t
201 // cdb-check: [...]: }
202
203 // cdb-command: t
204 // cdb-check: [...]: match_int(1);
205
206 // cdb-command: t
207 // cdb-check: [...]: fn match_int(y: i32) -> u16 {
208
209 // cdb-command: t
210 // cdb-check: [...]: match y {
211
212 // cdb-command: t
213 // cdb-check: [...]: 1 => 3,
214
215 // cdb-command: t
216 // cdb-check: [...]: }
217
218 // cdb-command: t
219 // cdb-check: [...]: match_int(2);
220
221 // cdb-command: t
222 // cdb-check: [...]: fn match_int(y: i32) -> u16 {
223
224 // cdb-command: t
225 // cdb-check: [...]: match y {
226
227 // cdb-command: t
228 // cdb-check: [...]: _ => 4,
229
230 // cdb-command: t
231 // cdb-check: [...]: }
232
233 // cdb-command: t
234 // cdb-check: [...]: match_int(0);
235
236 // cdb-command: t
237 // cdb-check: [...]: fn match_int(y: i32) -> u16 {
238
239 // cdb-command: t
240 // cdb-check: [...]: match y {
241
242 // cdb-command: t
243 // cdb-check: [...]: 0 => 2,
244
245 // cdb-command: t
246 // cdb-check: [...]: }
247
248 // cdb-command: t
249 // cdb-check: [...]: match_int(-1);
250
251 // cdb-command: t
252 // cdb-check: [...]: fn match_int(y: i32) -> u16 {
253
254 // cdb-command: t
255 // cdb-check: [...]: match y {
256
257 // cdb-command: t
258 // cdb-check: [...]: -1 => 1,
259
260 // cdb-command: t
261 // cdb-check: [...]: }
262
263 // cdb-command: t
264 // cdb-check: [...]: match_tuple(5, 12);
265
266 // cdb-command: t
267 // cdb-check: [...]: fn match_tuple(a: u8, b: i8) -> u32 {
268
269 // cdb-command: t
270 // cdb-check: [...]: match (a, b) {
271
272 // cdb-command: t
273 // cdb-check: [...]: (5, 12) => 3,
274
275 // cdb-command: t
276 // cdb-check: [...]: }
277
278 // cdb-command: t
279 // cdb-check: [...]: match_tuple(29, 1);
280
281 // cdb-command: t
282 // cdb-check: [...]: fn match_tuple(a: u8, b: i8) -> u32 {
283
284 // cdb-command: t
285 // cdb-check: [...]: match (a, b) {
286
287 // cdb-command: t
288 // cdb-check: [...]: (29, _) => 2,
289
290 // cdb-command: t
291 // cdb-check: [...]: }
292
293 // cdb-command: t
294 // cdb-check: [...]: match_tuple(12, 12);
295
296 // cdb-command: t
297 // cdb-check: [...]: fn match_tuple(a: u8, b: i8) -> u32 {
298
299 // cdb-command: t
300 // cdb-check: [...]: match (a, b) {
301
302 // cdb-command: t
303 // cdb-check: [...]: (_, _) => 5
304
305 // cdb-command: t
306 // cdb-check: [...]: }
307
308 // cdb-command: t
309 // cdb-check: [...]: match_tuple(42, 12);
310
311 // cdb-command: t
312 // cdb-check: [...]: fn match_tuple(a: u8, b: i8) -> u32 {
313
314 // cdb-command: t
315 // cdb-check: [...]: match (a, b) {
316
317 // cdb-command: t
318 // cdb-check: [...]: (42, 12) => 1,
319
320 // cdb-command: t
321 // cdb-check: [...]: }
322
323 // cdb-command: t
324 // cdb-check: [...]: match_tuple(1, 9);
325
326 // cdb-command: t
327 // cdb-check: [...]: fn match_tuple(a: u8, b: i8) -> u32 {
328
329 // cdb-command: t
330 // cdb-check: [...]: match (a, b) {
331
332 // cdb-command: t
333 // cdb-check: [...]: (_, 9) => 4,
334
335 // cdb-command: t
336 // cdb-check: [...]: }
337
338 // cdb-command: t
339 // cdb-check: [...]: }
340
341 fn main() {
342 match_enum(Some(42)); // #break
343 match_enum(Some(12));
344 match_enum(None);
345
346 match_int(1);
347 match_int(2);
348 match_int(0);
349 match_int(-1);
350
351 match_tuple(5, 12);
352 match_tuple(29, 1);
353 match_tuple(12, 12);
354 match_tuple(42, 12);
355 match_tuple(1, 9);
356 }
357
358 fn match_enum(x: Option<u32>) -> u8 {
359 match x {
360 Some(42) => 1,
361 Some(_) => 2,
362 None => 3,
363 }
364 }
365
366 fn match_int(y: i32) -> u16 {
367 match y {
368 -1 => 1,
369 0 => 2,
370 1 => 3,
371 _ => 4,
372 }
373 }
374
375 fn match_tuple(a: u8, b: i8) -> u32 {
376 match (a, b) {
377 (42, 12) => 1,
378 (29, _) => 2,
379 (5, 12) => 3,
380 (_, 9) => 4,
381 (_, _) => 5
382 }
383 }