]> git.lizzy.rs Git - rust.git/blob - tests/ui/for-loop-while/while-let.rs
Rollup merge of #106766 - GuillaumeGomez:rm-stripper-dead-code, r=notriddle
[rust.git] / tests / ui / for-loop-while / while-let.rs
1 // run-pass
2
3 use std::collections::BinaryHeap;
4
5 fn make_pq() -> BinaryHeap<isize> {
6     BinaryHeap::from(vec![1,2,3])
7 }
8
9 pub fn main() {
10     let mut pq = make_pq();
11     let mut sum = 0;
12     while let Some(x) = pq.pop() {
13         sum += x;
14     }
15     assert_eq!(sum, 6);
16
17     pq = make_pq();
18     sum = 0;
19     'a: while let Some(x) = pq.pop() {
20         sum += x;
21         if x == 2 {
22             break 'a;
23         }
24     }
25     assert_eq!(sum, 5);
26
27     pq = make_pq();
28     sum = 0;
29     'a2: while let Some(x) = pq.pop() {
30         if x == 3 {
31             continue 'a2;
32         }
33         sum += x;
34     }
35     assert_eq!(sum, 3);
36
37     let mut pq1 = make_pq();
38     sum = 0;
39     while let Some(x) = pq1.pop() {
40         let mut pq2 = make_pq();
41         while let Some(y) = pq2.pop() {
42             sum += x * y;
43         }
44     }
45     assert_eq!(sum, 6 + 12 + 18);
46 }