Auto merge of #9053 - AaronC81:fix-9052, r=flip1995

Fix suggestions for `async` closures in redundant_closure_call

Fixes #9052

changelog: Fix suggestions given by [`redundant_closure_call`] for async closures
This commit is contained in:
bors 2022-08-02 12:39:37 +00:00
commit 05e7d5481b
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