fn push_program_clauses_for_associated_type_values_in_impls_of<I: Interner>(
    builder: &mut ClauseBuilder<'_, I>,
    environment: &Environment<I>,
    trait_id: TraitId<I>,
    trait_parameters: &[GenericArg<I>],
    binders: &CanonicalVarKinds<I>
)
Expand description

Generate program clauses from the associated-type values found in impls of the given trait. i.e., if trait_id = Iterator, then we would generate program clauses from each type Item = ... found in any impls of Iterator: which are found in impls. That is, if we are normalizing (e.g.) <T as Iterator>::Item>, then search for impls of iterator and, within those impls, for associated type values:

impl Iterator for Foo {
    type Item = Bar; // <-- associated type value
}