]> git.lizzy.rs Git - rust.git/blob - src/tools/clippy/tests/ui/match_wild_err_arm.rs
Auto merge of #99099 - Stargateur:phantomdata_debug, r=joshtriplett
[rust.git] / src / tools / clippy / tests / ui / match_wild_err_arm.rs
1 // revisions: edition2018 edition2021
2 // [edition2018] edition:2018
3 // [edition2021] edition:2021
4 #![feature(exclusive_range_pattern)]
5 #![allow(clippy::match_same_arms)]
6 #![warn(clippy::match_wild_err_arm)]
7
8 fn match_wild_err_arm() {
9     let x: Result<i32, &str> = Ok(3);
10
11     match x {
12         Ok(3) => println!("ok"),
13         Ok(_) => println!("ok"),
14         Err(_) => panic!("err"),
15     }
16
17     match x {
18         Ok(3) => println!("ok"),
19         Ok(_) => println!("ok"),
20         Err(_) => panic!(),
21     }
22
23     match x {
24         Ok(3) => println!("ok"),
25         Ok(_) => println!("ok"),
26         Err(_) => {
27             panic!();
28         },
29     }
30
31     match x {
32         Ok(3) => println!("ok"),
33         Ok(_) => println!("ok"),
34         Err(_e) => panic!(),
35     }
36
37     // Allowed when used in `panic!`.
38     match x {
39         Ok(3) => println!("ok"),
40         Ok(_) => println!("ok"),
41         Err(_e) => panic!("{}", _e),
42     }
43
44     // Allowed when not with `panic!` block.
45     match x {
46         Ok(3) => println!("ok"),
47         Ok(_) => println!("ok"),
48         Err(_) => println!("err"),
49     }
50
51     // Allowed when used with `unreachable!`.
52     match x {
53         Ok(3) => println!("ok"),
54         Ok(_) => println!("ok"),
55         Err(_) => unreachable!(),
56     }
57
58     // Allowed when used with `unreachable!`.
59     match x {
60         Ok(3) => println!("ok"),
61         Ok(_) => println!("ok"),
62         Err(_) => {
63             unreachable!();
64         },
65     }
66 }
67
68 fn main() {}