//@ aux-build:block-on.rs //@ edition:2021 //@ build-pass #![feature(async_closure)] extern crate block_on; struct NoCopy; fn main() { block_on::block_on(async { async fn call_once(x: impl async Fn()) { x().await } // check that `&{async-closure}` implements `async Fn`. call_once(&async || {}).await; // check that `&{closure}` implements `async Fn`. call_once(&|| async {}).await; // check that `&fndef` implements `async Fn`. async fn foo() {} call_once(&foo).await; }); }