1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
//@ 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, { }