| //@ edition:2018 |
| |
| async fn foo () { } |
| fn bar() -> impl std::future::Future { async {} } |
| fn boo() {} |
| |
| async fn baz() -> std::io::Result<()> { |
| foo().await; |
| boo().await; //~ ERROR `()` is not a future |
| bar().await; |
| std::io::Result::Ok(()) |
| } |
| |
| macro_rules! e { |
| () => { |
| () |
| }; |
| } |
| |
| macro_rules! f { |
| ($expr:expr) => { |
| $expr.await |
| //~^ ERROR `()` is not a future |
| }; |
| } |
| |
| async fn with_macros() { |
| e!().await; |
| //~^ ERROR `()` is not a future |
| |
| f!(()); |
| } |
| |
| // Regression test for issue #117014. |
| async fn desugaring_span_ctxt() { |
| for x in [] {}.await //~ ERROR `()` is not a future |
| } |
| |
| fn main() {} |