rust/tests/ui/traits/fn-pointer/hrtb-assoc-fn-traits-28994.rs

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

23 lines
513 B
Rust
Raw Normal View History

2024-10-07 06:32:53 -05:00
//@ check-pass
//! Tests that a HRTB + FnOnce bound involving an associated type don't prevent
//! a function pointer from implementing `Fn` traits.
//! Test for <https://github.com/rust-lang/rust/issues/28994>
trait LifetimeToType<'a> {
type Out;
}
impl<'a> LifetimeToType<'a> for () {
type Out = &'a ();
}
fn id<'a>(val: &'a ()) -> <() as LifetimeToType<'a>>::Out {
val
}
fn assert_fn<F: for<'a> FnOnce(&'a ()) -> <() as LifetimeToType<'a>>::Out>(_func: F) { }
fn main() {
assert_fn(id);
}