2024-02-16 20:02:50 +00:00
|
|
|
//@ check-pass
|
2022-12-07 03:50:35 +00:00
|
|
|
|
|
|
|
trait Foo<'a> {
|
|
|
|
type Input;
|
|
|
|
}
|
|
|
|
|
|
|
|
impl<F: Fn(u32)> Foo<'_> for F {
|
|
|
|
type Input = u32;
|
|
|
|
}
|
|
|
|
|
|
|
|
trait SuperFn: for<'a> Foo<'a> + for<'a> Fn(<Self as Foo<'a>>::Input) {}
|
|
|
|
impl<T> SuperFn for T where T: for<'a> Fn(<Self as Foo<'a>>::Input) + for<'a> Foo<'a> {}
|
|
|
|
|
|
|
|
fn needs_super(_: impl SuperFn) {}
|
|
|
|
|
|
|
|
fn main() {
|
|
|
|
needs_super(|_: u32| {});
|
|
|
|
}
|