mirror of
https://github.com/rust-lang/rust.git
synced 2025-06-04 19:29:07 +00:00
Fix suggestion to add unneeded space in manual_async
This commit is contained in:
parent
b20d4c155d
commit
1624b00bde
@ -69,7 +69,20 @@ impl<'tcx> LateLintPass<'tcx> for ManualAsyncFn {
|
|||||||
|diag| {
|
|diag| {
|
||||||
if_chain! {
|
if_chain! {
|
||||||
if let Some(header_snip) = snippet_opt(cx, header_span);
|
if let Some(header_snip) = snippet_opt(cx, header_span);
|
||||||
if let Some(ret_pos) = header_snip.rfind("->");
|
if let Some(ret_pos) = header_snip.rfind("->").map(|rpos| {
|
||||||
|
let mut rpos = rpos;
|
||||||
|
let chars: Vec<char> = header_snip.chars().collect();
|
||||||
|
while rpos > 1 {
|
||||||
|
if let Some(c) = chars.get(rpos - 1) {
|
||||||
|
if c.is_whitespace() {
|
||||||
|
rpos -= 1;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
rpos
|
||||||
|
});
|
||||||
if let Some((ret_sugg, ret_snip)) = suggested_ret(cx, output);
|
if let Some((ret_sugg, ret_snip)) = suggested_ret(cx, output);
|
||||||
then {
|
then {
|
||||||
let help = format!("make the function `async` and {}", ret_sugg);
|
let help = format!("make the function `async` and {}", ret_sugg);
|
||||||
@ -194,7 +207,7 @@ fn suggested_ret(cx: &LateContext<'_>, output: &Ty<'_>) -> Option<(&'static str,
|
|||||||
},
|
},
|
||||||
_ => {
|
_ => {
|
||||||
let sugg = "return the output of the future directly";
|
let sugg = "return the output of the future directly";
|
||||||
snippet_opt(cx, output.span).map(|snip| (sugg, format!("-> {}", snip)))
|
snippet_opt(cx, output.span).map(|snip| (sugg, format!(" -> {}", snip)))
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -7,7 +7,19 @@ use std::future::Future;
|
|||||||
|
|
||||||
async fn fut() -> i32 { 42 }
|
async fn fut() -> i32 { 42 }
|
||||||
|
|
||||||
async fn empty_fut() {}
|
#[rustfmt::skip]
|
||||||
|
async fn fut2() -> i32 { 42 }
|
||||||
|
|
||||||
|
#[rustfmt::skip]
|
||||||
|
async fn fut3() -> i32 { 42 }
|
||||||
|
|
||||||
|
async fn empty_fut() {}
|
||||||
|
|
||||||
|
#[rustfmt::skip]
|
||||||
|
async fn empty_fut2() {}
|
||||||
|
|
||||||
|
#[rustfmt::skip]
|
||||||
|
async fn empty_fut3() {}
|
||||||
|
|
||||||
async fn core_fut() -> i32 { 42 }
|
async fn core_fut() -> i32 { 42 }
|
||||||
|
|
||||||
|
@ -9,10 +9,30 @@ fn fut() -> impl Future<Output = i32> {
|
|||||||
async { 42 }
|
async { 42 }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[rustfmt::skip]
|
||||||
|
fn fut2() ->impl Future<Output = i32> {
|
||||||
|
async { 42 }
|
||||||
|
}
|
||||||
|
|
||||||
|
#[rustfmt::skip]
|
||||||
|
fn fut3()-> impl Future<Output = i32> {
|
||||||
|
async { 42 }
|
||||||
|
}
|
||||||
|
|
||||||
fn empty_fut() -> impl Future<Output = ()> {
|
fn empty_fut() -> impl Future<Output = ()> {
|
||||||
async {}
|
async {}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[rustfmt::skip]
|
||||||
|
fn empty_fut2() ->impl Future<Output = ()> {
|
||||||
|
async {}
|
||||||
|
}
|
||||||
|
|
||||||
|
#[rustfmt::skip]
|
||||||
|
fn empty_fut3()-> impl Future<Output = ()> {
|
||||||
|
async {}
|
||||||
|
}
|
||||||
|
|
||||||
fn core_fut() -> impl core::future::Future<Output = i32> {
|
fn core_fut() -> impl core::future::Future<Output = i32> {
|
||||||
async move { 42 }
|
async move { 42 }
|
||||||
}
|
}
|
||||||
|
@ -15,14 +15,44 @@ LL | fn fut() -> impl Future<Output = i32> { 42 }
|
|||||||
| ^^^^^^
|
| ^^^^^^
|
||||||
|
|
||||||
error: this function can be simplified using the `async fn` syntax
|
error: this function can be simplified using the `async fn` syntax
|
||||||
--> $DIR/manual_async_fn.rs:12:1
|
--> $DIR/manual_async_fn.rs:13:1
|
||||||
|
|
|
||||||
|
LL | fn fut2() ->impl Future<Output = i32> {
|
||||||
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
|
||||||
|
help: make the function `async` and return the output of the future directly
|
||||||
|
|
|
||||||
|
LL | async fn fut2() -> i32 {
|
||||||
|
| ^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
help: move the body of the async block to the enclosing function
|
||||||
|
|
|
||||||
|
LL | fn fut2() ->impl Future<Output = i32> { 42 }
|
||||||
|
| ^^^^^^
|
||||||
|
|
||||||
|
error: this function can be simplified using the `async fn` syntax
|
||||||
|
--> $DIR/manual_async_fn.rs:18:1
|
||||||
|
|
|
||||||
|
LL | fn fut3()-> impl Future<Output = i32> {
|
||||||
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
|
||||||
|
help: make the function `async` and return the output of the future directly
|
||||||
|
|
|
||||||
|
LL | async fn fut3() -> i32 {
|
||||||
|
| ^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
help: move the body of the async block to the enclosing function
|
||||||
|
|
|
||||||
|
LL | fn fut3()-> impl Future<Output = i32> { 42 }
|
||||||
|
| ^^^^^^
|
||||||
|
|
||||||
|
error: this function can be simplified using the `async fn` syntax
|
||||||
|
--> $DIR/manual_async_fn.rs:22:1
|
||||||
|
|
|
|
||||||
LL | fn empty_fut() -> impl Future<Output = ()> {
|
LL | fn empty_fut() -> impl Future<Output = ()> {
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
|
|
||||||
help: make the function `async` and remove the return type
|
help: make the function `async` and remove the return type
|
||||||
|
|
|
|
||||||
LL | async fn empty_fut() {
|
LL | async fn empty_fut() {
|
||||||
| ^^^^^^^^^^^^^^^^^^^^
|
| ^^^^^^^^^^^^^^^^^^^^
|
||||||
help: move the body of the async block to the enclosing function
|
help: move the body of the async block to the enclosing function
|
||||||
|
|
|
|
||||||
@ -30,7 +60,37 @@ LL | fn empty_fut() -> impl Future<Output = ()> {}
|
|||||||
| ^^
|
| ^^
|
||||||
|
|
||||||
error: this function can be simplified using the `async fn` syntax
|
error: this function can be simplified using the `async fn` syntax
|
||||||
--> $DIR/manual_async_fn.rs:16:1
|
--> $DIR/manual_async_fn.rs:27:1
|
||||||
|
|
|
||||||
|
LL | fn empty_fut2() ->impl Future<Output = ()> {
|
||||||
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
|
||||||
|
help: make the function `async` and remove the return type
|
||||||
|
|
|
||||||
|
LL | async fn empty_fut2() {
|
||||||
|
| ^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
help: move the body of the async block to the enclosing function
|
||||||
|
|
|
||||||
|
LL | fn empty_fut2() ->impl Future<Output = ()> {}
|
||||||
|
| ^^
|
||||||
|
|
||||||
|
error: this function can be simplified using the `async fn` syntax
|
||||||
|
--> $DIR/manual_async_fn.rs:32:1
|
||||||
|
|
|
||||||
|
LL | fn empty_fut3()-> impl Future<Output = ()> {
|
||||||
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
|
||||||
|
help: make the function `async` and remove the return type
|
||||||
|
|
|
||||||
|
LL | async fn empty_fut3() {
|
||||||
|
| ^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
help: move the body of the async block to the enclosing function
|
||||||
|
|
|
||||||
|
LL | fn empty_fut3()-> impl Future<Output = ()> {}
|
||||||
|
| ^^
|
||||||
|
|
||||||
|
error: this function can be simplified using the `async fn` syntax
|
||||||
|
--> $DIR/manual_async_fn.rs:36:1
|
||||||
|
|
|
|
||||||
LL | fn core_fut() -> impl core::future::Future<Output = i32> {
|
LL | fn core_fut() -> impl core::future::Future<Output = i32> {
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
@ -45,7 +105,7 @@ LL | fn core_fut() -> impl core::future::Future<Output = i32> { 42 }
|
|||||||
| ^^^^^^
|
| ^^^^^^
|
||||||
|
|
||||||
error: this function can be simplified using the `async fn` syntax
|
error: this function can be simplified using the `async fn` syntax
|
||||||
--> $DIR/manual_async_fn.rs:38:5
|
--> $DIR/manual_async_fn.rs:58:5
|
||||||
|
|
|
|
||||||
LL | fn inh_fut() -> impl Future<Output = i32> {
|
LL | fn inh_fut() -> impl Future<Output = i32> {
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
@ -65,7 +125,7 @@ LL | let c = 21;
|
|||||||
...
|
...
|
||||||
|
|
||||||
error: this function can be simplified using the `async fn` syntax
|
error: this function can be simplified using the `async fn` syntax
|
||||||
--> $DIR/manual_async_fn.rs:73:1
|
--> $DIR/manual_async_fn.rs:93:1
|
||||||
|
|
|
|
||||||
LL | fn elided(_: &i32) -> impl Future<Output = i32> + '_ {
|
LL | fn elided(_: &i32) -> impl Future<Output = i32> + '_ {
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
@ -80,7 +140,7 @@ LL | fn elided(_: &i32) -> impl Future<Output = i32> + '_ { 42 }
|
|||||||
| ^^^^^^
|
| ^^^^^^
|
||||||
|
|
||||||
error: this function can be simplified using the `async fn` syntax
|
error: this function can be simplified using the `async fn` syntax
|
||||||
--> $DIR/manual_async_fn.rs:82:1
|
--> $DIR/manual_async_fn.rs:102:1
|
||||||
|
|
|
|
||||||
LL | fn explicit<'a, 'b>(_: &'a i32, _: &'b i32) -> impl Future<Output = i32> + 'a + 'b {
|
LL | fn explicit<'a, 'b>(_: &'a i32, _: &'b i32) -> impl Future<Output = i32> + 'a + 'b {
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
@ -94,5 +154,5 @@ help: move the body of the async block to the enclosing function
|
|||||||
LL | fn explicit<'a, 'b>(_: &'a i32, _: &'b i32) -> impl Future<Output = i32> + 'a + 'b { 42 }
|
LL | fn explicit<'a, 'b>(_: &'a i32, _: &'b i32) -> impl Future<Output = i32> + 'a + 'b { 42 }
|
||||||
| ^^^^^^
|
| ^^^^^^
|
||||||
|
|
||||||
error: aborting due to 6 previous errors
|
error: aborting due to 10 previous errors
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user