//@ 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: 'static>(_: &T) {} | |
is_static(&c); | |
// Check that `<{async fn} as AsyncFnOnce>::CallOnceFuture` owns its captures. | |
fn call_once<F: async FnOnce()>(f: F) -> F::CallOnceFuture { f() } | |
is_static(&call_once(c)); | |
}); | |
} |