//@ aux-build:block-on.rs | |
//@ run-pass | |
//@ check-run-results | |
//@ revisions: e2021 e2018 | |
//@[e2018] edition:2018 | |
//@[e2021] edition:2021 | |
#![feature(async_closure)] | |
extern crate block_on; | |
async fn call_once(f: impl async FnOnce()) { 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); | |
}); | |
} |