transitive_bounds

Function transitive_bounds 

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

This is like traits::transitive_bounds_that_define_assoc_item but computes all bounds not just the ones defining an associated item. We must compute this ourselves to resolve type-relative associated refinements.

NOTE: traits::transitive_bounds_that_define_assoc_item is defined specifically to avoid cycles which is not a problem for us. So instead of using explicit_supertraits_containing_assoc_item we can simply use explicit_super_predicates_of.