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
}