mirror of
https://github.com/rust-lang/rust-clippy
synced 2024-11-10 23:24:24 +00:00
Improve the redundant_closure message
This commit is contained in:
parent
bf98aa6fb8
commit
8c540dcd2d
2 changed files with 30 additions and 30 deletions
|
@ -99,8 +99,8 @@ fn check_closure(cx: &LateContext<'_>, expr: &Expr<'_>) {
|
||||||
cx,
|
cx,
|
||||||
REDUNDANT_CLOSURE,
|
REDUNDANT_CLOSURE,
|
||||||
expr.span,
|
expr.span,
|
||||||
"redundant closure found",
|
"redundant closure",
|
||||||
"remove closure as shown",
|
"replace the closure with `Vec::new`",
|
||||||
"std::vec::Vec::new".into(),
|
"std::vec::Vec::new".into(),
|
||||||
Applicability::MachineApplicable,
|
Applicability::MachineApplicable,
|
||||||
);
|
);
|
||||||
|
@ -129,11 +129,11 @@ fn check_closure(cx: &LateContext<'_>, expr: &Expr<'_>) {
|
||||||
if compare_inputs(&mut iter_input_pats(decl, body), &mut args.iter());
|
if compare_inputs(&mut iter_input_pats(decl, body), &mut args.iter());
|
||||||
|
|
||||||
then {
|
then {
|
||||||
span_lint_and_then(cx, REDUNDANT_CLOSURE, expr.span, "redundant closure found", |diag| {
|
span_lint_and_then(cx, REDUNDANT_CLOSURE, expr.span, "redundant closure", |diag| {
|
||||||
if let Some(snippet) = snippet_opt(cx, caller.span) {
|
if let Some(snippet) = snippet_opt(cx, caller.span) {
|
||||||
diag.span_suggestion(
|
diag.span_suggestion(
|
||||||
expr.span,
|
expr.span,
|
||||||
"remove closure as shown",
|
"replace the closure with the function itself",
|
||||||
snippet,
|
snippet,
|
||||||
Applicability::MachineApplicable,
|
Applicability::MachineApplicable,
|
||||||
);
|
);
|
||||||
|
@ -163,8 +163,8 @@ fn check_closure(cx: &LateContext<'_>, expr: &Expr<'_>) {
|
||||||
cx,
|
cx,
|
||||||
REDUNDANT_CLOSURE_FOR_METHOD_CALLS,
|
REDUNDANT_CLOSURE_FOR_METHOD_CALLS,
|
||||||
expr.span,
|
expr.span,
|
||||||
"redundant closure found",
|
"redundant closure",
|
||||||
"remove closure as shown",
|
"replace the closure with the method itself",
|
||||||
format!("{}::{}", name, path.ident.name),
|
format!("{}::{}", name, path.ident.name),
|
||||||
Applicability::MachineApplicable,
|
Applicability::MachineApplicable,
|
||||||
);
|
);
|
||||||
|
|
|
@ -1,22 +1,22 @@
|
||||||
error: redundant closure found
|
error: redundant closure
|
||||||
--> $DIR/eta.rs:32:27
|
--> $DIR/eta.rs:32:27
|
||||||
|
|
|
|
||||||
LL | let a = Some(1u8).map(|a| foo(a));
|
LL | let a = Some(1u8).map(|a| foo(a));
|
||||||
| ^^^^^^^^^^ help: remove closure as shown: `foo`
|
| ^^^^^^^^^^ help: replace the closure with the function itself: `foo`
|
||||||
|
|
|
|
||||||
= note: `-D clippy::redundant-closure` implied by `-D warnings`
|
= note: `-D clippy::redundant-closure` implied by `-D warnings`
|
||||||
|
|
||||||
error: redundant closure found
|
error: redundant closure
|
||||||
--> $DIR/eta.rs:33:10
|
--> $DIR/eta.rs:33:10
|
||||||
|
|
|
|
||||||
LL | meta(|a| foo(a));
|
LL | meta(|a| foo(a));
|
||||||
| ^^^^^^^^^^ help: remove closure as shown: `foo`
|
| ^^^^^^^^^^ help: replace the closure with the function itself: `foo`
|
||||||
|
|
||||||
error: redundant closure found
|
error: redundant closure
|
||||||
--> $DIR/eta.rs:37:40
|
--> $DIR/eta.rs:37:40
|
||||||
|
|
|
|
||||||
LL | let _: Option<Vec<u8>> = true.then(|| vec![]); // special case vec!
|
LL | let _: Option<Vec<u8>> = true.then(|| vec![]); // special case vec!
|
||||||
| ^^^^^^^^^ help: remove closure as shown: `std::vec::Vec::new`
|
| ^^^^^^^^^ help: replace the closure with `Vec::new`: `std::vec::Vec::new`
|
||||||
|
|
||||||
error: this expression borrows a reference (`&u8`) that is immediately dereferenced by the compiler
|
error: this expression borrows a reference (`&u8`) that is immediately dereferenced by the compiler
|
||||||
--> $DIR/eta.rs:39:21
|
--> $DIR/eta.rs:39:21
|
||||||
|
@ -26,61 +26,61 @@ LL | all(&[1, 2, 3], &&2, |x, y| below(x, y)); //is adjusted
|
||||||
|
|
|
|
||||||
= note: `-D clippy::needless-borrow` implied by `-D warnings`
|
= note: `-D clippy::needless-borrow` implied by `-D warnings`
|
||||||
|
|
||||||
error: redundant closure found
|
error: redundant closure
|
||||||
--> $DIR/eta.rs:46:27
|
--> $DIR/eta.rs:46:27
|
||||||
|
|
|
|
||||||
LL | let e = Some(1u8).map(|a| generic(a));
|
LL | let e = Some(1u8).map(|a| generic(a));
|
||||||
| ^^^^^^^^^^^^^^ help: remove closure as shown: `generic`
|
| ^^^^^^^^^^^^^^ help: replace the closure with the function itself: `generic`
|
||||||
|
|
||||||
error: redundant closure found
|
error: redundant closure
|
||||||
--> $DIR/eta.rs:89:51
|
--> $DIR/eta.rs:89:51
|
||||||
|
|
|
|
||||||
LL | let e = Some(TestStruct { some_ref: &i }).map(|a| a.foo());
|
LL | let e = Some(TestStruct { some_ref: &i }).map(|a| a.foo());
|
||||||
| ^^^^^^^^^^^ help: remove closure as shown: `TestStruct::foo`
|
| ^^^^^^^^^^^ help: replace the closure with the method itself: `TestStruct::foo`
|
||||||
|
|
|
|
||||||
= note: `-D clippy::redundant-closure-for-method-calls` implied by `-D warnings`
|
= note: `-D clippy::redundant-closure-for-method-calls` implied by `-D warnings`
|
||||||
|
|
||||||
error: redundant closure found
|
error: redundant closure
|
||||||
--> $DIR/eta.rs:91:51
|
--> $DIR/eta.rs:91:51
|
||||||
|
|
|
|
||||||
LL | let e = Some(TestStruct { some_ref: &i }).map(|a| a.trait_foo());
|
LL | let e = Some(TestStruct { some_ref: &i }).map(|a| a.trait_foo());
|
||||||
| ^^^^^^^^^^^^^^^^^ help: remove closure as shown: `TestTrait::trait_foo`
|
| ^^^^^^^^^^^^^^^^^ help: replace the closure with the method itself: `TestTrait::trait_foo`
|
||||||
|
|
||||||
error: redundant closure found
|
error: redundant closure
|
||||||
--> $DIR/eta.rs:94:42
|
--> $DIR/eta.rs:94:42
|
||||||
|
|
|
|
||||||
LL | let e = Some(&mut vec![1, 2, 3]).map(|v| v.clear());
|
LL | let e = Some(&mut vec![1, 2, 3]).map(|v| v.clear());
|
||||||
| ^^^^^^^^^^^^^ help: remove closure as shown: `std::vec::Vec::clear`
|
| ^^^^^^^^^^^^^ help: replace the closure with the method itself: `std::vec::Vec::clear`
|
||||||
|
|
||||||
error: redundant closure found
|
error: redundant closure
|
||||||
--> $DIR/eta.rs:99:29
|
--> $DIR/eta.rs:99:29
|
||||||
|
|
|
|
||||||
LL | let e = Some("str").map(|s| s.to_string());
|
LL | let e = Some("str").map(|s| s.to_string());
|
||||||
| ^^^^^^^^^^^^^^^^^ help: remove closure as shown: `std::string::ToString::to_string`
|
| ^^^^^^^^^^^^^^^^^ help: replace the closure with the method itself: `std::string::ToString::to_string`
|
||||||
|
|
||||||
error: redundant closure found
|
error: redundant closure
|
||||||
--> $DIR/eta.rs:101:27
|
--> $DIR/eta.rs:101:27
|
||||||
|
|
|
|
||||||
LL | let e = Some('a').map(|s| s.to_uppercase());
|
LL | let e = Some('a').map(|s| s.to_uppercase());
|
||||||
| ^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `char::to_uppercase`
|
| ^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the method itself: `char::to_uppercase`
|
||||||
|
|
||||||
error: redundant closure found
|
error: redundant closure
|
||||||
--> $DIR/eta.rs:104:65
|
--> $DIR/eta.rs:104:65
|
||||||
|
|
|
|
||||||
LL | let e: std::vec::Vec<char> = vec!['a', 'b', 'c'].iter().map(|c| c.to_ascii_uppercase()).collect();
|
LL | let e: std::vec::Vec<char> = vec!['a', 'b', 'c'].iter().map(|c| c.to_ascii_uppercase()).collect();
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `char::to_ascii_uppercase`
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the method itself: `char::to_ascii_uppercase`
|
||||||
|
|
||||||
error: redundant closure found
|
error: redundant closure
|
||||||
--> $DIR/eta.rs:187:27
|
--> $DIR/eta.rs:187:27
|
||||||
|
|
|
|
||||||
LL | let a = Some(1u8).map(|a| foo_ptr(a));
|
LL | let a = Some(1u8).map(|a| foo_ptr(a));
|
||||||
| ^^^^^^^^^^^^^^ help: remove closure as shown: `foo_ptr`
|
| ^^^^^^^^^^^^^^ help: replace the closure with the function itself: `foo_ptr`
|
||||||
|
|
||||||
error: redundant closure found
|
error: redundant closure
|
||||||
--> $DIR/eta.rs:192:27
|
--> $DIR/eta.rs:192:27
|
||||||
|
|
|
|
||||||
LL | let a = Some(1u8).map(|a| closure(a));
|
LL | let a = Some(1u8).map(|a| closure(a));
|
||||||
| ^^^^^^^^^^^^^^ help: remove closure as shown: `closure`
|
| ^^^^^^^^^^^^^^ help: replace the closure with the function itself: `closure`
|
||||||
|
|
||||||
error: aborting due to 13 previous errors
|
error: aborting due to 13 previous errors
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue