Reproduction script
Expected behavior: The file compiles successfully
Actual behavior: The function x requires an additional <T as Foo>::Baz: Bar<U>. This check is entirely redundant with the trait definition, and would always have to be true for T: Foo<Bar=U> to hold.
This only occurs if the constraint referencing the first associated type is a parameter to the trait, not an associated type, which is why this doesn't happen for IntoIterator. This appears to have been an unintended side effect of RFC 1214
Reproduction script
Expected behavior: The file compiles successfully
Actual behavior: The function
xrequires an additional<T as Foo>::Baz: Bar<U>. This check is entirely redundant with the trait definition, and would always have to be true forT: Foo<Bar=U>to hold.This only occurs if the constraint referencing the first associated type is a parameter to the trait, not an associated type, which is why this doesn't happen for
IntoIterator. This appears to have been an unintended side effect of RFC 1214