//@ edition:2018 //@ check-pass #![feature(unboxed_closures)] use std::future::Future; async fn wrapper(f: F) where for<'a> F: FnOnce<(&'a mut i32,)>, for<'a> >::Output: Future + 'a { let mut i = 41; f(&mut i).await; } async fn add_one(i: &mut i32) { *i = *i + 1; } fn main() {}