1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
// edition: 2021 use std::future::Future; async fn bop() { fold(run(), |mut foo| async move { &mut foo.bar; }) } fn fold<Fut, F, U>(_: Foo<U>, f: F) where F: FnMut(Foo<U>) -> Fut, { loop {} } struct Foo<F> { bar: Vec<F>, } fn run() -> Foo<impl Future<Output = ()>> { //~^ ERROR type annotations needed loop {} } fn main() {}