Auto merge of #12210 - GuillaumeGomez:add-regression-test-2371, r=blyxyas
Add regression ui test for #2371 Fixes #2371. #2371 seems to already be handled correctly in the lint. This PR adds a ui regression test so we can close it. r? `@blyxyas` changelog: Add regression ui test for #2371
This commit is contained in:
commit
455c07b7cc
@ -99,7 +99,6 @@ fn check_fold_with_op(
|
||||
cx,
|
||||
UNNECESSARY_FOLD,
|
||||
fold_span.with_hi(expr.span.hi()),
|
||||
// TODO #2371 don't suggest e.g., .any(|x| f(x)) if we can suggest .any(f)
|
||||
"this `.fold` can be written more succinctly using another method",
|
||||
"try",
|
||||
sugg,
|
||||
|
@ -1,9 +1,15 @@
|
||||
#![allow(dead_code)]
|
||||
|
||||
fn is_any(acc: bool, x: usize) -> bool {
|
||||
acc || x > 2
|
||||
}
|
||||
|
||||
/// Calls which should trigger the `UNNECESSARY_FOLD` lint
|
||||
fn unnecessary_fold() {
|
||||
// Can be replaced by .any
|
||||
let _ = (0..3).any(|x| x > 2);
|
||||
// Can be replaced by .any (checking suggestion)
|
||||
let _ = (0..3).fold(false, is_any);
|
||||
// Can be replaced by .all
|
||||
let _ = (0..3).all(|x| x > 2);
|
||||
// Can be replaced by .sum
|
||||
|
@ -1,9 +1,15 @@
|
||||
#![allow(dead_code)]
|
||||
|
||||
fn is_any(acc: bool, x: usize) -> bool {
|
||||
acc || x > 2
|
||||
}
|
||||
|
||||
/// Calls which should trigger the `UNNECESSARY_FOLD` lint
|
||||
fn unnecessary_fold() {
|
||||
// Can be replaced by .any
|
||||
let _ = (0..3).fold(false, |acc, x| acc || x > 2);
|
||||
// Can be replaced by .any (checking suggestion)
|
||||
let _ = (0..3).fold(false, |acc, x| is_any(acc, x));
|
||||
// Can be replaced by .all
|
||||
let _ = (0..3).fold(true, |acc, x| acc && x > 2);
|
||||
// Can be replaced by .sum
|
||||
|
@ -1,5 +1,5 @@
|
||||
error: this `.fold` can be written more succinctly using another method
|
||||
--> $DIR/unnecessary_fold.rs:6:20
|
||||
--> $DIR/unnecessary_fold.rs:10:20
|
||||
|
|
||||
LL | let _ = (0..3).fold(false, |acc, x| acc || x > 2);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `any(|x| x > 2)`
|
||||
@ -7,89 +7,98 @@ LL | let _ = (0..3).fold(false, |acc, x| acc || x > 2);
|
||||
= note: `-D clippy::unnecessary-fold` implied by `-D warnings`
|
||||
= help: to override `-D warnings` add `#[allow(clippy::unnecessary_fold)]`
|
||||
|
||||
error: redundant closure
|
||||
--> $DIR/unnecessary_fold.rs:12:32
|
||||
|
|
||||
LL | let _ = (0..3).fold(false, |acc, x| is_any(acc, x));
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the function itself: `is_any`
|
||||
|
|
||||
= note: `-D clippy::redundant-closure` implied by `-D warnings`
|
||||
= help: to override `-D warnings` add `#[allow(clippy::redundant_closure)]`
|
||||
|
||||
error: this `.fold` can be written more succinctly using another method
|
||||
--> $DIR/unnecessary_fold.rs:8:20
|
||||
--> $DIR/unnecessary_fold.rs:14:20
|
||||
|
|
||||
LL | let _ = (0..3).fold(true, |acc, x| acc && x > 2);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `all(|x| x > 2)`
|
||||
|
||||
error: this `.fold` can be written more succinctly using another method
|
||||
--> $DIR/unnecessary_fold.rs:10:25
|
||||
--> $DIR/unnecessary_fold.rs:16:25
|
||||
|
|
||||
LL | let _: i32 = (0..3).fold(0, |acc, x| acc + x);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `sum()`
|
||||
|
||||
error: this `.fold` can be written more succinctly using another method
|
||||
--> $DIR/unnecessary_fold.rs:12:25
|
||||
--> $DIR/unnecessary_fold.rs:18:25
|
||||
|
|
||||
LL | let _: i32 = (0..3).fold(1, |acc, x| acc * x);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `product()`
|
||||
|
||||
error: this `.fold` can be written more succinctly using another method
|
||||
--> $DIR/unnecessary_fold.rs:17:41
|
||||
--> $DIR/unnecessary_fold.rs:23:41
|
||||
|
|
||||
LL | let _: bool = (0..3).map(|x| 2 * x).fold(false, |acc, x| acc || x > 2);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `any(|x| x > 2)`
|
||||
|
||||
error: this `.fold` can be written more succinctly using another method
|
||||
--> $DIR/unnecessary_fold.rs:47:10
|
||||
--> $DIR/unnecessary_fold.rs:53:10
|
||||
|
|
||||
LL | .fold(false, |acc, x| acc || x > 2);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `any(|x| x > 2)`
|
||||
|
||||
error: this `.fold` can be written more succinctly using another method
|
||||
--> $DIR/unnecessary_fold.rs:58:33
|
||||
--> $DIR/unnecessary_fold.rs:64:33
|
||||
|
|
||||
LL | assert_eq!(map.values().fold(0, |x, y| x + y), 0);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^ help: try: `sum::<i32>()`
|
||||
|
||||
error: this `.fold` can be written more succinctly using another method
|
||||
--> $DIR/unnecessary_fold.rs:61:30
|
||||
--> $DIR/unnecessary_fold.rs:67:30
|
||||
|
|
||||
LL | let _ = map.values().fold(0, |x, y| x + y);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^ help: try: `sum::<i32>()`
|
||||
|
||||
error: this `.fold` can be written more succinctly using another method
|
||||
--> $DIR/unnecessary_fold.rs:62:30
|
||||
--> $DIR/unnecessary_fold.rs:68:30
|
||||
|
|
||||
LL | let _ = map.values().fold(1, |x, y| x * y);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^ help: try: `product::<i32>()`
|
||||
|
||||
error: this `.fold` can be written more succinctly using another method
|
||||
--> $DIR/unnecessary_fold.rs:63:35
|
||||
--> $DIR/unnecessary_fold.rs:69:35
|
||||
|
|
||||
LL | let _: i32 = map.values().fold(0, |x, y| x + y);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^ help: try: `sum()`
|
||||
|
||||
error: this `.fold` can be written more succinctly using another method
|
||||
--> $DIR/unnecessary_fold.rs:64:35
|
||||
--> $DIR/unnecessary_fold.rs:70:35
|
||||
|
|
||||
LL | let _: i32 = map.values().fold(1, |x, y| x * y);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^ help: try: `product()`
|
||||
|
||||
error: this `.fold` can be written more succinctly using another method
|
||||
--> $DIR/unnecessary_fold.rs:65:31
|
||||
--> $DIR/unnecessary_fold.rs:71:31
|
||||
|
|
||||
LL | anything(map.values().fold(0, |x, y| x + y));
|
||||
| ^^^^^^^^^^^^^^^^^^^^^ help: try: `sum::<i32>()`
|
||||
|
||||
error: this `.fold` can be written more succinctly using another method
|
||||
--> $DIR/unnecessary_fold.rs:66:31
|
||||
--> $DIR/unnecessary_fold.rs:72:31
|
||||
|
|
||||
LL | anything(map.values().fold(1, |x, y| x * y));
|
||||
| ^^^^^^^^^^^^^^^^^^^^^ help: try: `product::<i32>()`
|
||||
|
||||
error: this `.fold` can be written more succinctly using another method
|
||||
--> $DIR/unnecessary_fold.rs:67:26
|
||||
--> $DIR/unnecessary_fold.rs:73:26
|
||||
|
|
||||
LL | num(map.values().fold(0, |x, y| x + y));
|
||||
| ^^^^^^^^^^^^^^^^^^^^^ help: try: `sum()`
|
||||
|
||||
error: this `.fold` can be written more succinctly using another method
|
||||
--> $DIR/unnecessary_fold.rs:68:26
|
||||
--> $DIR/unnecessary_fold.rs:74:26
|
||||
|
|
||||
LL | num(map.values().fold(1, |x, y| x * y));
|
||||
| ^^^^^^^^^^^^^^^^^^^^^ help: try: `product()`
|
||||
|
||||
error: aborting due to 15 previous errors
|
||||
error: aborting due to 16 previous errors
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user