Add suggestion for missing .await keyword
This commit is contained in:
parent
a6b5d229c1
commit
88194200e5
9 changed files with 193 additions and 0 deletions
21
src/test/ui/async-await/dont-suggest-missing-await.rs
Normal file
21
src/test/ui/async-await/dont-suggest-missing-await.rs
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
// edition:2018
|
||||
|
||||
// This test ensures we don't make the suggestion in bodies that aren't `async`.
|
||||
|
||||
#![feature(async_await)]
|
||||
|
||||
fn take_u32(x: u32) {}
|
||||
|
||||
async fn make_u32() -> u32 {
|
||||
22
|
||||
}
|
||||
|
||||
async fn dont_suggest_await_in_closure() {
|
||||
|| {
|
||||
let x = make_u32();
|
||||
take_u32(x)
|
||||
//~^ ERROR mismatched types [E0308]
|
||||
};
|
||||
}
|
||||
|
||||
fn main() {}
|
||||
12
src/test/ui/async-await/dont-suggest-missing-await.stderr
Normal file
12
src/test/ui/async-await/dont-suggest-missing-await.stderr
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
error[E0308]: mismatched types
|
||||
--> $DIR/dont-suggest-missing-await.rs:16:18
|
||||
|
|
||||
LL | take_u32(x)
|
||||
| ^ expected u32, found opaque type
|
||||
|
|
||||
= note: expected type `u32`
|
||||
found type `impl std::future::Future`
|
||||
|
||||
error: aborting due to previous error
|
||||
|
||||
For more information about this error, try `rustc --explain E0308`.
|
||||
32
src/test/ui/async-await/suggest-missing-await.fixed
Normal file
32
src/test/ui/async-await/suggest-missing-await.fixed
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
// edition:2018
|
||||
// run-rustfix
|
||||
|
||||
#![feature(async_await)]
|
||||
|
||||
fn take_u32(_x: u32) {}
|
||||
|
||||
async fn make_u32() -> u32 {
|
||||
22
|
||||
}
|
||||
|
||||
#[allow(unused)]
|
||||
async fn suggest_await_in_async_fn() {
|
||||
let x = make_u32();
|
||||
take_u32(x.await)
|
||||
//~^ ERROR mismatched types [E0308]
|
||||
//~| HELP consider using `.await` here
|
||||
//~| SUGGESTION x.await
|
||||
}
|
||||
|
||||
#[allow(unused)]
|
||||
async fn suggest_await_in_async_closure() {
|
||||
async || {
|
||||
let x = make_u32();
|
||||
take_u32(x.await)
|
||||
//~^ ERROR mismatched types [E0308]
|
||||
//~| HELP consider using `.await` here
|
||||
//~| SUGGESTION x.await
|
||||
};
|
||||
}
|
||||
|
||||
fn main() {}
|
||||
32
src/test/ui/async-await/suggest-missing-await.rs
Normal file
32
src/test/ui/async-await/suggest-missing-await.rs
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
// edition:2018
|
||||
// run-rustfix
|
||||
|
||||
#![feature(async_await)]
|
||||
|
||||
fn take_u32(_x: u32) {}
|
||||
|
||||
async fn make_u32() -> u32 {
|
||||
22
|
||||
}
|
||||
|
||||
#[allow(unused)]
|
||||
async fn suggest_await_in_async_fn() {
|
||||
let x = make_u32();
|
||||
take_u32(x)
|
||||
//~^ ERROR mismatched types [E0308]
|
||||
//~| HELP consider using `.await` here
|
||||
//~| SUGGESTION x.await
|
||||
}
|
||||
|
||||
#[allow(unused)]
|
||||
async fn suggest_await_in_async_closure() {
|
||||
async || {
|
||||
let x = make_u32();
|
||||
take_u32(x)
|
||||
//~^ ERROR mismatched types [E0308]
|
||||
//~| HELP consider using `.await` here
|
||||
//~| SUGGESTION x.await
|
||||
};
|
||||
}
|
||||
|
||||
fn main() {}
|
||||
27
src/test/ui/async-await/suggest-missing-await.stderr
Normal file
27
src/test/ui/async-await/suggest-missing-await.stderr
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
error[E0308]: mismatched types
|
||||
--> $DIR/suggest-missing-await.rs:15:14
|
||||
|
|
||||
LL | take_u32(x)
|
||||
| ^
|
||||
| |
|
||||
| expected u32, found opaque type
|
||||
| help: consider using `.await` here: `x.await`
|
||||
|
|
||||
= note: expected type `u32`
|
||||
found type `impl std::future::Future`
|
||||
|
||||
error[E0308]: mismatched types
|
||||
--> $DIR/suggest-missing-await.rs:25:18
|
||||
|
|
||||
LL | take_u32(x)
|
||||
| ^
|
||||
| |
|
||||
| expected u32, found opaque type
|
||||
| help: consider using `.await` here: `x.await`
|
||||
|
|
||||
= note: expected type `u32`
|
||||
found type `impl std::future::Future`
|
||||
|
||||
error: aborting due to 2 previous errors
|
||||
|
||||
For more information about this error, try `rustc --explain E0308`.
|
||||
Loading…
Add table
Add a link
Reference in a new issue