Opaques have duplicated lifetimes and we need to compute bidirectional outlives predicates to
enforce that these lifetimes stay in sync.
Ensures that the super-predicates of the trait with a DefId
of trait_def_id are lowered and stored. This also ensures that
the transitive super-predicates are lowered.
Returns a list of user-specified type predicates for the definition with ID def_id.
N.B., this does not include any implied/inferred constraints.
Ensures that the super-predicates of the trait with a DefId
of trait_def_id are lowered and stored. This also ensures that
the transitive super-predicates are lowered.
Returns a list of all type predicates (explicit and implicit) for the definition with
ID def_id. This includes all predicates returned by predicates_defined_on, plus
Self: Trait predicates for traits.
Returns the predicates defined on item_def_id of the form
X: Foo where X is the type parameter def_id.