rust/tests/ui/closures/supertrait-hint-cycle-2.rs

19 lines
351 B
Rust
Raw Normal View History

2022-12-06 21:50:35 -06:00
// 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| {});
}