4 #![warn(clippy::redundant_pattern_matching)]
9 clippy::match_like_matches_macro,
14 let result: Result<usize, usize> = Err(5);
15 if let Ok(_) = &result {}
17 if let Ok(_) = Ok::<i32, i32>(42) {}
19 if let Err(_) = Err::<i32, i32>(42) {}
21 if let None = None::<()> {}
23 if let Some(_) = Some(42) {}
25 if let Some(_) = Some(42) {
31 while let Some(_) = Some(42) {}
33 while let None = Some(42) {}
35 while let None = None::<()> {}
37 while let Ok(_) = Ok::<i32, i32>(10) {}
39 while let Err(_) = Ok::<i32, i32>(10) {}
41 let mut v = vec![1, 2, 3];
42 while let Some(_) = v.pop() {
46 if Ok::<i32, i32>(42).is_ok() {}
48 if Err::<i32, i32>(42).is_err() {}
50 if None::<i32>.is_none() {}
52 if Some(42).is_some() {}
54 if let Ok(x) = Ok::<i32, i32>(42) {
58 match Ok::<i32, i32>(42) {
63 match Ok::<i32, i32>(42) {
68 match Err::<i32, i32>(42) {
73 match Err::<i32, i32>(42) {
88 let _ = match None::<()> {
93 let _ = if let Ok(_) = Ok::<usize, ()>(4) { true } else { false };
95 let opt = Some(false);
96 let x = if let Some(_) = opt { true } else { false };
102 let _ = if let Some(_) = gen_opt() {
104 } else if let None = gen_opt() {
106 } else if let Ok(_) = gen_res() {
108 } else if let Err(_) = gen_res() {
115 fn gen_opt() -> Option<()> {
119 fn gen_res() -> Result<(), ()> {
123 fn takes_bool(_: bool) {}
136 fn result_opt() -> Result<Option<i32>, i32> {
140 fn try_result_opt() -> Result<i32, i32> {
141 while let Some(_) = r#try!(result_opt()) {}
142 if let Some(_) = r#try!(result_opt()) {}
148 if let Some(_) = m!() {}
149 while let Some(_) = m!() {}
152 // Methods that are unstable const should not be suggested within a const context, see issue #5697.
153 // However, in Rust 1.48.0 the methods `is_ok` and `is_err` of `Result`, and `is_some` and `is_none`
154 // of `Option` were stabilized as const, so the following should be linted.
155 const fn issue6067() {
156 if let Ok(_) = Ok::<i32, i32>(42) {}
158 if let Err(_) = Err::<i32, i32>(42) {}
160 if let Some(_) = Some(42) {}
162 if let None = None::<()> {}
164 while let Ok(_) = Ok::<i32, i32>(10) {}
166 while let Err(_) = Ok::<i32, i32>(10) {}
168 while let Some(_) = Some(42) {}
170 while let None = None::<()> {}
172 match Ok::<i32, i32>(42) {
177 match Err::<i32, i32>(42) {