| // edition:2021 |
| |
| // RPITIT is not enough to allow use of async functions |
| #![allow(incomplete_features)] |
| #![feature(return_position_impl_trait_in_trait)] |
| |
| trait T { |
| async fn foo(); //~ ERROR functions in traits cannot be declared `async` |
| } |
| |
| // Both return_position_impl_trait_in_trait and async_fn_in_trait are required for this (see also |
| // feature-gate-return_position_impl_trait_in_trait.rs) |
| trait T2 { |
| async fn foo() -> impl Sized; //~ ERROR functions in traits cannot be declared `async` |
| } |
| |
| trait T3 { |
| fn foo() -> impl std::future::Future<Output = ()>; |
| } |
| |
| impl T3 for () { |
| async fn foo() {} //~ ERROR functions in traits cannot be declared `async` |
| } |
| |
| fn main() {} |