// Check that or patterns are lowered correctly in `if let` and `while let` expressions. | |
//@ run-pass | |
fn main() { | |
let mut opt = Some(3); | |
let mut w = Vec::new(); | |
while let Some(ref mut val @ (3 | 4 | 6)) = opt { | |
w.push(*val); | |
*val += 1; | |
} | |
assert_eq!(w, [3, 4]); | |
if let &(None | Some(6 | 7)) = &opt { | |
unreachable!(); | |
} | |
if let Some(x @ (4 | 5 | 6)) = opt { | |
assert_eq!(x, 5); | |
} else { | |
unreachable!(); | |
} | |
} |