rustc_infer::traits::util

Function transitive_bounds_that_define_assoc_item

Source
pub fn transitive_bounds_that_define_assoc_item<'tcx>(
    tcx: TyCtxt<'tcx>,
    trait_refs: impl Iterator<Item = PolyTraitRef<'tcx>>,
    assoc_name: Ident,
) -> impl Iterator<Item = PolyTraitRef<'tcx>>
Expand description

A specialized variant of elaborate that only elaborates trait references that may define the given associated item with the name assoc_name. It uses the explicit_supertraits_containing_assoc_item query to avoid enumerating super-predicates that aren’t related to assoc_item. This is used when resolving types like Self::Item or T::Item and helps to avoid cycle errors (see e.g. #35237).