Closed
Description
trait Mk {
type Assoc;
}
fn mk<T: Mk>(t: T) -> T::Assoc {
todo!()
}
fn foo<S: Mk + Default>() {
let x = Default::default();
let y = mk<_ /* ?z */>(x);
let x: S = x;
}
Assigning <?z.1 as Mk>::Assoc
to ?y.0
generalizes ?z.1
to ?a.0
. We then alias-eq <?z.1 as Mk>::Assoc = <?a.0 as Mk>::Assoc
, which stalls out.