rust/tests/ui/lint/unused/unused-async.rs

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

63 lines
1.2 KiB
Rust
Raw Normal View History

2021-10-06 15:19:39 -05:00
// edition:2018
#![deny(unused_must_use)]
2021-10-06 15:19:39 -05:00
#[must_use]
async fn foo() -> i32 {
2021-10-06 15:19:39 -05:00
1
}
#[must_use]
fn bar() -> impl std::future::Future<Output=i32> {
async {
42
}
}
async fn baz() -> i32 {
0
}
2021-10-06 15:19:39 -05:00
struct Wowee {}
impl Wowee {
#[must_use]
async fn test_method() -> i32 {
1
}
}
async fn test() {
foo(); //~ ERROR unused return value of `foo` that must be used
//~^ ERROR unused implementer of `Future` that must be used
2022-08-17 10:21:43 -05:00
foo().await; //~ ERROR unused output of future returned by `foo` that must be used
bar(); //~ ERROR unused return value of `bar` that must be used
//~^ ERROR unused implementer of `Future` that must be used
bar().await; // ok, it's not an async fn
baz(); //~ ERROR unused implementer of `Future` that must be used
baz().await; // ok
}
2021-10-06 15:19:39 -05:00
/* FIXME(guswynn) update this test when async-fn-in-traits works
trait Doer {
#[must_use]
async fn test_trait_method() -> i32;
WARNING must_use
async fn test_other_trait() -> i32;
}
impl Doer for Wowee {
async fn test_trait_method() -> i32 {
1
}
#[must_use]
async fn test_other_trait() -> i32 {
WARNING must_use
1
}
}
*/
fn main() {
}