-
Notifications
You must be signed in to change notification settings - Fork 1.5k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Auto merge of #6871 - camsteffen:redundant-closure-macro, r=Manishearth
Fix redundant closure with macros changelog: Fix redundant_closure FPs with macros Fixes #6732 Fixes #6850 Fixes #4354 (addresses the error message confusion)
- Loading branch information
Showing
4 changed files
with
98 additions
and
40 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,80 +1,86 @@ | ||
error: redundant closure found | ||
--> $DIR/eta.rs:20:27 | ||
error: redundant closure | ||
--> $DIR/eta.rs:32:27 | ||
| | ||
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` | ||
|
||
error: redundant closure found | ||
--> $DIR/eta.rs:21:10 | ||
error: redundant closure | ||
--> $DIR/eta.rs:33:10 | ||
| | ||
LL | meta(|a| foo(a)); | ||
| ^^^^^^^^^^ help: remove closure as shown: `foo` | ||
| ^^^^^^^^^^ help: replace the closure with the function itself: `foo` | ||
|
||
error: redundant closure | ||
--> $DIR/eta.rs:37:40 | ||
| | ||
LL | let _: Option<Vec<u8>> = true.then(|| vec![]); // special case vec! | ||
| ^^^^^^^^^ 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 | ||
--> $DIR/eta.rs:24:21 | ||
--> $DIR/eta.rs:39:21 | ||
| | ||
LL | all(&[1, 2, 3], &&2, |x, y| below(x, y)); //is adjusted | ||
| ^^^ help: change this to: `&2` | ||
| | ||
= note: `-D clippy::needless-borrow` implied by `-D warnings` | ||
|
||
error: redundant closure found | ||
--> $DIR/eta.rs:31:27 | ||
error: redundant closure | ||
--> $DIR/eta.rs:46:27 | ||
| | ||
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 | ||
--> $DIR/eta.rs:74:51 | ||
error: redundant closure | ||
--> $DIR/eta.rs:89:51 | ||
| | ||
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` | ||
|
||
error: redundant closure found | ||
--> $DIR/eta.rs:76:51 | ||
error: redundant closure | ||
--> $DIR/eta.rs:91:51 | ||
| | ||
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 | ||
--> $DIR/eta.rs:79:42 | ||
error: redundant closure | ||
--> $DIR/eta.rs:94:42 | ||
| | ||
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 | ||
--> $DIR/eta.rs:84:29 | ||
error: redundant closure | ||
--> $DIR/eta.rs:99:29 | ||
| | ||
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 | ||
--> $DIR/eta.rs:86:27 | ||
error: redundant closure | ||
--> $DIR/eta.rs:101:27 | ||
| | ||
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 | ||
--> $DIR/eta.rs:89:65 | ||
error: redundant closure | ||
--> $DIR/eta.rs:104:65 | ||
| | ||
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 | ||
--> $DIR/eta.rs:172:27 | ||
error: redundant closure | ||
--> $DIR/eta.rs:187:27 | ||
| | ||
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 | ||
--> $DIR/eta.rs:177:27 | ||
error: redundant closure | ||
--> $DIR/eta.rs:192:27 | ||
| | ||
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 12 previous errors | ||
error: aborting due to 13 previous errors | ||
|