//@ aux-build:block-on.rs //@ edition:2021 //@ build-pass #![feature(async_closure, async_fn_traits)] extern crate block_on; fn main() { block_on::block_on(async { let s = String::from("hello, world"); let c = async move || { println!("{s}"); }; c().await; c().await; fn is_static(_: &T) {} is_static(&c); // Check that `<{async fn} as AsyncFnOnce>::CallOnceFuture` owns its captures. fn call_once(f: F) -> F::CallOnceFuture { f() } is_static(&call_once(c)); }); }