Module item_bounds

Source

Structs§

AssocTyToOpaque 🔒
MapAndCompressBoundVars 🔒
Given some where clause like for<'b, 'c> <Self as Trait<'a_identity>>::Gat<'b>: Bound<'c>, the mapping will map 'b back to the GAT’s 'b_identity. Then we need to compress the remaining bound var 'c to index 0.

Functions§

associated_type_bounds 🔒
For associated types we include both bounds written on the type (type X: Trait) and predicates from the trait: where Self::X: Trait.
explicit_item_bounds 🔒
explicit_item_bounds_with_filter 🔒
explicit_item_self_bounds 🔒
impl_super_outlives 🔒
This exists as an optimization to compute only the supertraits of this impl’s trait that are outlives bounds.
item_bounds 🔒
item_non_self_bounds 🔒
This exists as an optimization to compute only the item bounds of the item that are not Self bounds.
item_self_bounds 🔒
opaque_type_bounds 🔒
Opaque types don’t inherit bounds from their parent: for return position impl trait it isn’t possible to write a suitable predicate on the containing function and for type-alias impl trait we don’t have a backwards compatibility issue.
remap_gat_vars_and_recurse_into_nested_projections 🔒
The code below is quite involved, so let me explain.