]> git.lizzy.rs Git - rust.git/blob - src/test/ui/or-patterns/if-let-while-let.rs
Auto merge of #82864 - jyn514:short-circuit, r=GuillaumeGomez
[rust.git] / src / test / ui / or-patterns / if-let-while-let.rs
1 // Check that or patterns are lowered correctly in `if let` and `while let` expressions.
2 // run-pass
3
4 fn main() {
5     let mut opt = Some(3);
6     let mut w = Vec::new();
7     while let Some(ref mut val @ (3 | 4 | 6)) = opt {
8         w.push(*val);
9         *val += 1;
10     }
11     assert_eq!(w, [3, 4]);
12     if let &(None | Some(6 | 7)) = &opt {
13         unreachable!();
14     }
15     if let Some(x @ (4 | 5 | 6)) = opt {
16         assert_eq!(x, 5);
17     } else {
18         unreachable!();
19     }
20 }