]> git.lizzy.rs Git - rust.git/blob - tests/ui/redundant_pattern_matching.rs
Auto merge of #4478 - tsurai:master, r=flip1995
[rust.git] / tests / ui / redundant_pattern_matching.rs
1 #![warn(clippy::all)]
2 #![warn(clippy::redundant_pattern_matching)]
3 #![allow(clippy::unit_arg, clippy::let_unit_value)]
4
5 fn main() {
6     if let Ok(_) = Ok::<i32, i32>(42) {}
7
8     if let Err(_) = Err::<i32, i32>(42) {}
9
10     if let None = None::<()> {}
11
12     if let Some(_) = Some(42) {}
13
14     if Ok::<i32, i32>(42).is_ok() {}
15
16     if Err::<i32, i32>(42).is_err() {}
17
18     if None::<i32>.is_none() {}
19
20     if Some(42).is_some() {}
21
22     if let Ok(x) = Ok::<i32, i32>(42) {
23         println!("{}", x);
24     }
25
26     match Ok::<i32, i32>(42) {
27         Ok(_) => true,
28         Err(_) => false,
29     };
30
31     match Ok::<i32, i32>(42) {
32         Ok(_) => false,
33         Err(_) => true,
34     };
35
36     match Err::<i32, i32>(42) {
37         Ok(_) => false,
38         Err(_) => true,
39     };
40
41     match Err::<i32, i32>(42) {
42         Ok(_) => true,
43         Err(_) => false,
44     };
45
46     match Some(42) {
47         Some(_) => true,
48         None => false,
49     };
50
51     match None::<()> {
52         Some(_) => false,
53         None => true,
54     };
55
56     let _ = match None::<()> {
57         Some(_) => false,
58         None => true,
59     };
60
61     let _ = if let Ok(_) = Ok::<usize, ()>(4) { true } else { false };
62
63     let _ = does_something();
64     let _ = returns_unit();
65
66     let opt = Some(false);
67     let x = if let Some(_) = opt { true } else { false };
68     takes_bool(x);
69     let y = if let Some(_) = opt {};
70     takes_unit(y);
71 }
72
73 fn takes_bool(x: bool) {}
74 fn takes_unit(x: ()) {}
75
76 fn does_something() -> bool {
77     if let Ok(_) = Ok::<i32, i32>(4) {
78         true
79     } else {
80         false
81     }
82 }
83
84 fn returns_unit() {
85     if let Ok(_) = Ok::<i32, i32>(4) {
86         true
87     } else {
88         false
89     };
90 }