summaryrefslogtreecommitdiffstats
path: root/tests/ui/closures/supertrait-hint-cycle-2.rs
blob: fda81b18d1e9417750ff0d17e1369aa1b805c7fe (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// 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| {});
}