//@ aux-build:block-on.rs | |
//@ edition:2021 | |
//@ build-pass | |
//@ revisions: current next | |
//@ ignore-compare-mode-next-solver (explicit revisions) | |
//@[next] compile-flags: -Znext-solver | |
use std::future::Future; | |
extern crate block_on; | |
// Check that async closures always implement `FnOnce` | |
fn main() { | |
block_on::block_on(async { | |
async fn call_once<F: Future>(x: impl FnOnce(&'static str) -> F) -> F::Output { | |
x("hello, world").await | |
} | |
call_once(async |x: &'static str| { | |
println!("hello, {x}"); | |
}).await | |
}); | |
} |