fn main() { let x; //~^ ERROR type annotations needed for `Map<_, _>` higher_ranked(); x = unconstrained_map(); } fn higher_ranked() where for<'a> &'a (): Sized {} struct Map where T: Fn() -> U { t: T, } trait Mirror { type Assoc; } impl Mirror for T { type Assoc = T; } fn unconstrained_map U, U>() -> as Mirror>::Assoc { todo!() }