//@ aux-build:block-on.rs //@ run-pass //@ check-run-results //@ revisions: e2021 e2018 //@[e2018] edition:2018 //@[e2021] edition:2021 extern crate block_on; async fn call_once(f: impl AsyncFnOnce()) { f().await; } pub async fn async_closure(x: &mut i32) { let c = async move || { *x += 1; }; call_once(c).await; } fn main() { block_on::block_on(async { let mut x = 0; async_closure(&mut x).await; assert_eq!(x, 1); }); }