Merge pull request #3281 from CYBAI/redundant-match
Add lint for redundant pattern matching for explicit return boolean
This commit is contained in:
commit
284c63e84d
10 changed files with 369 additions and 145 deletions
|
@ -1,34 +0,0 @@
|
|||
error: redundant pattern matching, consider using `is_ok()`
|
||||
--> $DIR/if_let_redundant_pattern_matching.rs:19:12
|
||||
|
|
||||
19 | if let Ok(_) = Ok::<i32, i32>(42) {}
|
||||
| -------^^^^^------------------------ help: try this: `if Ok::<i32, i32>(42).is_ok()`
|
||||
|
|
||||
= note: `-D clippy::if-let-redundant-pattern-matching` implied by `-D warnings`
|
||||
|
||||
error: redundant pattern matching, consider using `is_err()`
|
||||
--> $DIR/if_let_redundant_pattern_matching.rs:21:12
|
||||
|
|
||||
21 | if let Err(_) = Err::<i32, i32>(42) {
|
||||
| _____- ^^^^^^
|
||||
22 | | }
|
||||
| |_____- help: try this: `if Err::<i32, i32>(42).is_err()`
|
||||
|
||||
error: redundant pattern matching, consider using `is_none()`
|
||||
--> $DIR/if_let_redundant_pattern_matching.rs:24:12
|
||||
|
|
||||
24 | if let None = None::<()> {
|
||||
| _____- ^^^^
|
||||
25 | | }
|
||||
| |_____- help: try this: `if None::<()>.is_none()`
|
||||
|
||||
error: redundant pattern matching, consider using `is_some()`
|
||||
--> $DIR/if_let_redundant_pattern_matching.rs:27:12
|
||||
|
|
||||
27 | if let Some(_) = Some(42) {
|
||||
| _____- ^^^^^^^
|
||||
28 | | }
|
||||
| |_____- help: try this: `if Some(42).is_some()`
|
||||
|
||||
error: aborting due to 4 previous errors
|
||||
|
|
@ -13,7 +13,7 @@
|
|||
|
||||
|
||||
#![warn(clippy::all)]
|
||||
#![allow(unused, clippy::if_let_redundant_pattern_matching)]
|
||||
#![allow(unused, clippy::redundant_pattern_matching)]
|
||||
#![warn(clippy::single_match_else, clippy::match_same_arms)]
|
||||
|
||||
enum ExprNode {
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
|
||||
|
||||
#![warn(clippy::needless_pass_by_value)]
|
||||
#![allow(dead_code, clippy::single_match, clippy::if_let_redundant_pattern_matching, clippy::many_single_char_names, clippy::option_option)]
|
||||
#![allow(dead_code, clippy::single_match, clippy::redundant_pattern_matching, clippy::many_single_char_names, clippy::option_option)]
|
||||
|
||||
use std::borrow::Borrow;
|
||||
use std::convert::AsRef;
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
|
||||
|
||||
#![warn(clippy::all)]
|
||||
#![warn(clippy::if_let_redundant_pattern_matching)]
|
||||
#![warn(clippy::redundant_pattern_matching)]
|
||||
|
||||
|
||||
fn main() {
|
||||
|
@ -42,4 +42,34 @@ fn main() {
|
|||
if let Ok(x) = Ok::<i32,i32>(42) {
|
||||
println!("{}", x);
|
||||
}
|
||||
|
||||
match Ok::<i32, i32>(42) {
|
||||
Ok(_) => true,
|
||||
Err(_) => false,
|
||||
};
|
||||
|
||||
match Ok::<i32, i32>(42) {
|
||||
Ok(_) => false,
|
||||
Err(_) => true,
|
||||
};
|
||||
|
||||
match Err::<i32, i32>(42) {
|
||||
Ok(_) => false,
|
||||
Err(_) => true,
|
||||
};
|
||||
|
||||
match Err::<i32, i32>(42) {
|
||||
Ok(_) => true,
|
||||
Err(_) => false,
|
||||
};
|
||||
|
||||
match Some(42) {
|
||||
Some(_) => true,
|
||||
None => false,
|
||||
};
|
||||
|
||||
match None::<()> {
|
||||
Some(_) => false,
|
||||
None => true,
|
||||
};
|
||||
}
|
88
tests/ui/redundant_pattern_matching.stderr
Normal file
88
tests/ui/redundant_pattern_matching.stderr
Normal file
|
@ -0,0 +1,88 @@
|
|||
error: redundant pattern matching, consider using `is_ok()`
|
||||
--> $DIR/redundant_pattern_matching.rs:19:12
|
||||
|
|
||||
19 | if let Ok(_) = Ok::<i32, i32>(42) {}
|
||||
| -------^^^^^------------------------ help: try this: `if Ok::<i32, i32>(42).is_ok()`
|
||||
|
|
||||
= note: `-D clippy::redundant-pattern-matching` implied by `-D warnings`
|
||||
|
||||
error: redundant pattern matching, consider using `is_err()`
|
||||
--> $DIR/redundant_pattern_matching.rs:21:12
|
||||
|
|
||||
21 | if let Err(_) = Err::<i32, i32>(42) {
|
||||
| _____- ^^^^^^
|
||||
22 | | }
|
||||
| |_____- help: try this: `if Err::<i32, i32>(42).is_err()`
|
||||
|
||||
error: redundant pattern matching, consider using `is_none()`
|
||||
--> $DIR/redundant_pattern_matching.rs:24:12
|
||||
|
|
||||
24 | if let None = None::<()> {
|
||||
| _____- ^^^^
|
||||
25 | | }
|
||||
| |_____- help: try this: `if None::<()>.is_none()`
|
||||
|
||||
error: redundant pattern matching, consider using `is_some()`
|
||||
--> $DIR/redundant_pattern_matching.rs:27:12
|
||||
|
|
||||
27 | if let Some(_) = Some(42) {
|
||||
| _____- ^^^^^^^
|
||||
28 | | }
|
||||
| |_____- help: try this: `if Some(42).is_some()`
|
||||
|
||||
error: redundant pattern matching, consider using `is_ok()`
|
||||
--> $DIR/redundant_pattern_matching.rs:46:5
|
||||
|
|
||||
46 | / match Ok::<i32, i32>(42) {
|
||||
47 | | Ok(_) => true,
|
||||
48 | | Err(_) => false,
|
||||
49 | | };
|
||||
| |_____^ help: try this: `Ok::<i32, i32>(42).is_ok()`
|
||||
|
||||
error: redundant pattern matching, consider using `is_err()`
|
||||
--> $DIR/redundant_pattern_matching.rs:51:5
|
||||
|
|
||||
51 | / match Ok::<i32, i32>(42) {
|
||||
52 | | Ok(_) => false,
|
||||
53 | | Err(_) => true,
|
||||
54 | | };
|
||||
| |_____^ help: try this: `Ok::<i32, i32>(42).is_err()`
|
||||
|
||||
error: redundant pattern matching, consider using `is_err()`
|
||||
--> $DIR/redundant_pattern_matching.rs:56:5
|
||||
|
|
||||
56 | / match Err::<i32, i32>(42) {
|
||||
57 | | Ok(_) => false,
|
||||
58 | | Err(_) => true,
|
||||
59 | | };
|
||||
| |_____^ help: try this: `Err::<i32, i32>(42).is_err()`
|
||||
|
||||
error: redundant pattern matching, consider using `is_ok()`
|
||||
--> $DIR/redundant_pattern_matching.rs:61:5
|
||||
|
|
||||
61 | / match Err::<i32, i32>(42) {
|
||||
62 | | Ok(_) => true,
|
||||
63 | | Err(_) => false,
|
||||
64 | | };
|
||||
| |_____^ help: try this: `Err::<i32, i32>(42).is_ok()`
|
||||
|
||||
error: redundant pattern matching, consider using `is_some()`
|
||||
--> $DIR/redundant_pattern_matching.rs:66:5
|
||||
|
|
||||
66 | / match Some(42) {
|
||||
67 | | Some(_) => true,
|
||||
68 | | None => false,
|
||||
69 | | };
|
||||
| |_____^ help: try this: `Some(42).is_some()`
|
||||
|
||||
error: redundant pattern matching, consider using `is_none()`
|
||||
--> $DIR/redundant_pattern_matching.rs:71:5
|
||||
|
|
||||
71 | / match None::<()> {
|
||||
72 | | Some(_) => false,
|
||||
73 | | None => true,
|
||||
74 | | };
|
||||
| |_____^ help: try this: `None::<()>.is_none()`
|
||||
|
||||
error: aborting due to 10 previous errors
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue