// 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; } impl T3 for () { async fn foo() {} //~ ERROR functions in traits cannot be declared `async` } fn main() {}