| //@ check-pass | |
| 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| {}); | |
| } |