Re-exportsΒ§
use std::marker::PhantomData;πuse smallvec::smallvec;πuse crate::data_structures::HashSet;πuse crate::lang_items::SolverTraitLangItem;πuse crate::outlives::Component;πuse crate::outlives::push_outlives_components;πuse crate as ty;πuse crate::Interner;πuse crate::Region;πuse crate::Unnormalized;πuse crate::Upcast as _;πuse crate::inherent::*;π
StructsΒ§
- Clause
With Supertrait Span - Elaborator
- βElaborationβ is the process of identifying all the predicates that
are implied by a source predicate. Currently, this basically means
walking the βsupertraitsβ and other similar assumptions. For example,
if we know that
T: Ord, the elaborator would deduce thatT: PartialOrdholds as well. Similarly, if we havetrait Foo: 'static, and we know thatT: Foo, then we know thatT: 'static. - Filter
ToTraits - A filter around an iterator of predicates that makes it yield up just trait references.
EnumsΒ§
- Elaborate
Sized π - Filter π
TraitsΒ§
- Elaboratable
- Describes how to elaborate an obligation into a sub-obligation.
FunctionsΒ§
- elaborate
- elaborate_
component_ πto_ clause - elaborate_
outlives_ assumptions - supertrait_
def_ ids - Computes the def-ids of the transitive supertraits of
trait_def_id. This (intentionally) does not compute the full elaborated super-predicates but just the set of def-ids. It is used to identify which traits may define a given associated type to help avoid cycle errors, and to make size estimates for vtable layout computation. - supertraits