1
Fork 0

Merge pull request #3281 from CYBAI/redundant-match

Add lint for redundant pattern matching for explicit return boolean
This commit is contained in:
Philipp Hansch 2018-10-17 07:31:09 +02:00 committed by GitHub
commit 284c63e84d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
10 changed files with 369 additions and 145 deletions

View file

@ -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

View file

@ -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 {

View file

@ -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;

View file

@ -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,
};
}

View 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