]> git.lizzy.rs Git - rust.git/blob - src/test/ui/pattern/usefulness/top-level-alternation.rs
Auto merge of #98526 - jyn514:download-llvm-outside-checkout, r=Mark-Simulacrum
[rust.git] / src / test / ui / pattern / usefulness / top-level-alternation.rs
1 #![feature(let_else)]
2
3 #![deny(unreachable_patterns)]
4
5 fn main() {
6     while let 0..=2 | 1 = 0 {} //~ ERROR unreachable pattern
7     if let 0..=2 | 1 = 0 {} //~ ERROR unreachable pattern
8
9     match 0u8 {
10         0
11             | 0 => {} //~ ERROR unreachable pattern
12         _ => {}
13     }
14     match Some(0u8) {
15         Some(0)
16             | Some(0) => {} //~ ERROR unreachable pattern
17         _ => {}
18     }
19     match (0u8, 0u8) {
20         (0, _) | (_, 0) => {}
21         (0, 0) => {} //~ ERROR unreachable pattern
22         (1, 1) => {}
23         _ => {}
24     }
25     match (0u8, 0u8) {
26         (0, 1) | (2, 3) => {}
27         (0, 3) => {}
28         (2, 1) => {}
29         _ => {}
30     }
31     match (0u8, 0u8) {
32         (_, 0) | (_, 1) => {}
33         _ => {}
34     }
35     match (0u8, 0u8) {
36         (0, _) | (1, _) => {}
37         _ => {}
38     }
39     match Some(0u8) {
40         None | Some(_) => {}
41         _ => {} //~ ERROR unreachable pattern
42     }
43     match Some(0u8) {
44         None | Some(_) => {}
45         Some(_) => {} //~ ERROR unreachable pattern
46         None => {} //~ ERROR unreachable pattern
47     }
48     match Some(0u8) {
49         Some(_) => {}
50         None => {}
51         None | Some(_) => {} //~ ERROR unreachable pattern
52     }
53     match 0u8 {
54         1 | 2 => {},
55         1..=2 => {}, //~ ERROR unreachable pattern
56         _ => {},
57     }
58     let (0 | 0) = 0 else { return }; //~ ERROR unreachable pattern
59 }