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

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

26 lines
585 B
Rust
Raw Permalink Normal View History

2024-01-25 17:43:35 +00:00
//@ aux-build:block-on.rs
//@ edition:2021
//@ build-pass
2024-11-06 17:53:59 +00:00
#![feature(async_fn_traits)]
2024-01-25 17:43:35 +00:00
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;
2024-02-26 23:06:38 +00:00
fn is_static<T: 'static>(_: &T) {}
is_static(&c);
// Check that `<{async fn} as AsyncFnOnce>::CallOnceFuture` owns its captures.
2024-11-04 18:59:57 +00:00
fn call_once<F: AsyncFnOnce()>(f: F) -> F::CallOnceFuture { f() }
2024-02-26 23:06:38 +00:00
is_static(&call_once(c));
2024-01-25 17:43:35 +00:00
});
}