might be the cause behind the breakage in `deptypes`, but I am not sure about that ```rust trait Trait { type Assoc<U>; } impl<T> Trait for T { type Assoc<U> = U; } fn ret<T: Trait, U>(x: U) -> <T as Trait>::Assoc<U> { loop {} } fn foo<T: Trait<Assoc<u32> = u32>, U>() { let inf = Default::default(); let x = ret::<T, _>(inf); let _: i32 = inf; } ```