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
.