]> git.lizzy.rs Git - rust.git/blob - tests/ui/match_wild_err_arm.rs
Auto merge of #7866 - rust-lang:edition-2021-tests, r=Manishearth
[rust.git] / tests / ui / match_wild_err_arm.rs
1 //edition:2015
2 //FIXME: The lint only triggers once on edition 2021, so I'm leaving this at 2015 for now.
3
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     match x {
11         Ok(3) => println!("ok"),
12         Ok(_) => println!("ok"),
13         Err(_) => panic!("err"),
14     }
15
16     match x {
17         Ok(3) => println!("ok"),
18         Ok(_) => println!("ok"),
19         Err(_) => panic!(),
20     }
21
22     match x {
23         Ok(3) => println!("ok"),
24         Ok(_) => println!("ok"),
25         Err(_) => {
26             panic!();
27         },
28     }
29
30     match x {
31         Ok(3) => println!("ok"),
32         Ok(_) => println!("ok"),
33         Err(_e) => panic!(),
34     }
35
36     // Allowed when used in `panic!`.
37     match x {
38         Ok(3) => println!("ok"),
39         Ok(_) => println!("ok"),
40         Err(_e) => panic!("{}", _e),
41     }
42
43     // Allowed when not with `panic!` block.
44     match x {
45         Ok(3) => println!("ok"),
46         Ok(_) => println!("ok"),
47         Err(_) => println!("err"),
48     }
49
50     // Allowed when used with `unreachable!`.
51     match x {
52         Ok(3) => println!("ok"),
53         Ok(_) => println!("ok"),
54         Err(_) => unreachable!(),
55     }
56
57     // Allowed when used with `unreachable!`.
58     match x {
59         Ok(3) => println!("ok"),
60         Ok(_) => println!("ok"),
61         Err(_) => {
62             unreachable!();
63         },
64     }
65 }
66
67 fn main() {}