]> git.lizzy.rs Git - rust.git/blob - tests/ui/redundant_pattern_matching.rs
move closures to seperate fns, remove known problems
[rust.git] / tests / ui / redundant_pattern_matching.rs
1 // run-rustfix
2
3 #![warn(clippy::all)]
4 #![warn(clippy::redundant_pattern_matching)]
5 #![allow(clippy::unit_arg, unused_must_use, clippy::needless_bool)]
6
7 fn main() {
8     if let Ok(_) = Ok::<i32, i32>(42) {}
9
10     if let Err(_) = Err::<i32, i32>(42) {}
11
12     if let None = None::<()> {}
13
14     if let Some(_) = Some(42) {}
15
16     if let Some(_) = Some(42) {
17         foo();
18     } else {
19         bar();
20     }
21
22     while let Some(_) = Some(42) {}
23
24     while let None = Some(42) {}
25
26     while let None = None::<()> {}
27
28     while let Ok(_) = Ok::<i32, i32>(10) {}
29
30     while let Err(_) = Ok::<i32, i32>(10) {}
31
32     let mut v = vec![1, 2, 3];
33     while let Some(_) = v.pop() {
34         foo();
35     }
36
37     if Ok::<i32, i32>(42).is_ok() {}
38
39     if Err::<i32, i32>(42).is_err() {}
40
41     if None::<i32>.is_none() {}
42
43     if Some(42).is_some() {}
44
45     if let Ok(x) = Ok::<i32, i32>(42) {
46         println!("{}", x);
47     }
48
49     match Ok::<i32, i32>(42) {
50         Ok(_) => true,
51         Err(_) => false,
52     };
53
54     match Ok::<i32, i32>(42) {
55         Ok(_) => false,
56         Err(_) => true,
57     };
58
59     match Err::<i32, i32>(42) {
60         Ok(_) => false,
61         Err(_) => true,
62     };
63
64     match Err::<i32, i32>(42) {
65         Ok(_) => true,
66         Err(_) => false,
67     };
68
69     match Some(42) {
70         Some(_) => true,
71         None => false,
72     };
73
74     match None::<()> {
75         Some(_) => false,
76         None => true,
77     };
78
79     let _ = match None::<()> {
80         Some(_) => false,
81         None => true,
82     };
83
84     let _ = if let Ok(_) = Ok::<usize, ()>(4) { true } else { false };
85
86     let _ = does_something();
87     let _ = returns_unit();
88     let _ = issue_5271();
89
90     let opt = Some(false);
91     let x = if let Some(_) = opt { true } else { false };
92     takes_bool(x);
93 }
94
95 fn takes_bool(_: bool) {}
96
97 fn foo() {}
98
99 fn bar() {}
100
101 fn does_something() -> bool {
102     if let Ok(_) = Ok::<i32, i32>(4) {
103         true
104     } else {
105         false
106     }
107 }
108
109 fn returns_unit() {
110     if let Ok(_) = Ok::<i32, i32>(4) {
111         true
112     } else {
113         false
114     };
115 }