Fix suggestion for async in redundant_closure_call

Fix redundant_closure_call for single-expression async closures

Add Sugg::asyncify

Use Sugg for redundant_closure_call implementation
This commit is contained in:
Aaron Christiansen 2022-06-25 23:15:44 +01:00
parent aa0706bf20
commit 4c43aa7053
5 changed files with 109 additions and 8 deletions

View file

@ -1,8 +1,28 @@
// run-rustfix
#![feature(async_closure)]
#![warn(clippy::redundant_closure_call)]
#![allow(unused)]
async fn something() -> u32 {
21
}
async fn something_else() -> u32 {
2
}
fn main() {
let a = 42;
let b = async {
let x = something().await;
let y = something_else().await;
x * y
};
let c = {
let x = 21;
let y = 2;
x * y
};
let d = async { something().await };
}

View file

@ -1,8 +1,28 @@
// run-rustfix
#![feature(async_closure)]
#![warn(clippy::redundant_closure_call)]
#![allow(unused)]
async fn something() -> u32 {
21
}
async fn something_else() -> u32 {
2
}
fn main() {
let a = (|| 42)();
let b = (async || {
let x = something().await;
let y = something_else().await;
x * y
})();
let c = (|| {
let x = 21;
let y = 2;
x * y
})();
let d = (async || something().await)();
}

View file

@ -1,10 +1,56 @@
error: try not to call a closure in the expression where it is declared
--> $DIR/redundant_closure_call_fixable.rs:7:13
--> $DIR/redundant_closure_call_fixable.rs:16:13
|
LL | let a = (|| 42)();
| ^^^^^^^^^ help: try doing something like: `42`
|
= note: `-D clippy::redundant-closure-call` implied by `-D warnings`
error: aborting due to previous error
error: try not to call a closure in the expression where it is declared
--> $DIR/redundant_closure_call_fixable.rs:17:13
|
LL | let b = (async || {
| _____________^
LL | | let x = something().await;
LL | | let y = something_else().await;
LL | | x * y
LL | | })();
| |________^
|
help: try doing something like
|
LL ~ let b = async {
LL + let x = something().await;
LL + let y = something_else().await;
LL + x * y
LL ~ };
|
error: try not to call a closure in the expression where it is declared
--> $DIR/redundant_closure_call_fixable.rs:22:13
|
LL | let c = (|| {
| _____________^
LL | | let x = 21;
LL | | let y = 2;
LL | | x * y
LL | | })();
| |________^
|
help: try doing something like
|
LL ~ let c = {
LL + let x = 21;
LL + let y = 2;
LL + x * y
LL ~ };
|
error: try not to call a closure in the expression where it is declared
--> $DIR/redundant_closure_call_fixable.rs:27:13
|
LL | let d = (async || something().await)();
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try doing something like: `async { something().await }`
error: aborting due to 4 previous errors