23 lines
513 B
Rust
23 lines
513 B
Rust
|
//@ 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);
|
||
|
}
|