1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
//edition:2018 #![feature(type_alias_impl_trait)] pub trait Foo { type X: std::future::Future<Output = ()>; fn x(&self) -> Self::X; } pub struct F; impl Foo for F { type X = impl std::future::Future<Output = ()>; fn x(&self) -> Self::X { async {} } }