//@ known-bug: #117808 | |
//@ edition:2021 | |
//@ needs-rustc-debug-assertions | |
use std::future::Future; | |
fn hrc<R, F: for<'a> AsyncClosure<'a, (), R>>(f: F) -> F { | |
f | |
} | |
fn main() { | |
hrc(|x| async {}); | |
} | |
trait AsyncClosure<'a, I, R> | |
where | |
I: 'a, | |
{ | |
} | |
impl<'a, I, R, Fut, F> AsyncClosure<'a, I, R> for F | |
where | |
I: 'a, | |
F: Fn(&'a I) -> Fut, | |
Fut: Future<Output = R> + Send + 'a, | |
{ | |
} |