4 #![warn(clippy::redundant_pattern_matching)]
8 clippy::match_like_matches_macro,
9 clippy::unnecessary_wraps,
14 let result: Result<usize, usize> = Err(5);
17 if Ok::<i32, i32>(42).is_ok() {}
19 if Err::<i32, i32>(42).is_err() {}
21 while Ok::<i32, i32>(10).is_ok() {}
23 while Ok::<i32, i32>(10).is_err() {}
25 if Ok::<i32, i32>(42).is_ok() {}
27 if Err::<i32, i32>(42).is_err() {}
29 if let Ok(x) = Ok::<i32, i32>(42) {
33 Ok::<i32, i32>(42).is_ok();
35 Ok::<i32, i32>(42).is_err();
37 Err::<i32, i32>(42).is_err();
39 Err::<i32, i32>(42).is_ok();
41 let _ = if Ok::<usize, ()>(4).is_ok() { true } else { false };
47 let _ = if gen_res().is_ok() {
49 } else if gen_res().is_err() {
56 fn gen_res() -> Result<(), ()> {
67 fn result_opt() -> Result<Option<i32>, i32> {
71 fn try_result_opt() -> Result<i32, i32> {
72 while r#try!(result_opt()).is_some() {}
73 if r#try!(result_opt()).is_some() {}
80 while m!().is_some() {}
84 macro_rules! if_let_in_macro {
85 ($pat:pat, $x:expr) => {
86 if let Some($pat) = $x {}
90 // shouldn't be linted
91 if_let_in_macro!(_, Some(42));
94 // Methods that are unstable const should not be suggested within a const context, see issue #5697.
95 // However, in Rust 1.48.0 the methods `is_ok` and `is_err` of `Result` were stabilized as const,
96 // so the following should be linted.
97 const fn issue6067() {
98 if Ok::<i32, i32>(42).is_ok() {}
100 if Err::<i32, i32>(42).is_err() {}
102 while Ok::<i32, i32>(10).is_ok() {}
104 while Ok::<i32, i32>(10).is_err() {}
106 Ok::<i32, i32>(42).is_ok();
108 Err::<i32, i32>(42).is_err();