Struct rustc_trait_selection::traits::util::Elaborator
source · [−]pub struct Elaborator<'tcx> {
stack: Vec<Obligation<Predicate>, Global>,
visited: PredicateSet,
}Expand description
“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 that T: PartialOrd
holds as well. Similarly, if we have trait Foo: 'static, and we know that
T: Foo, then we know that T: 'static.
Fields
stack: Vec<Obligation<Predicate>, Global>visited: PredicateSetAuto Trait Implementations
impl<'tcx> !RefUnwindSafe for Elaborator
impl<'tcx> !Send for Elaborator
impl<'tcx> !Sync for Elaborator
impl<'tcx> Unpin for Elaborator
impl<'tcx> !UnwindSafe for Elaborator
Blanket Implementations
Layout
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...) attributes. Please see the Rust Reference’s “Type Layout” chapter for details on type layout guarantees.
Size: 64 bytes