rust/tests/ui/async-await/async-closures/move-is-async-fn.rs

26 lines
601 B
Rust

//@ 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));
});
}