Closed compiler-errors closed 8 months ago
Maybe we should actually register a projection predicate in structural-normalize, but then break the loop if we end up resolving the same alias we get out.
This should also make sure we don't overflow in cases like T: Trait<Assoc = <T as Trait>::Assoc>
??
This (among other issues) is causing rustc to fail to compile syn.
This got fixed ❤️
Given some
<?0 as Trait>::Assoc
, structural normalize currently checks if the predicate<?0 as Trait>::Assoc normalizes-to ?1
may hold. This is ambiguous, but fails later if?0
is constrained to someT
whereT: Trait
, because<T as Trait>::Assoc
is now rigid.