rustc_type_ir::elaborate

Trait Elaboratable

Source
pub trait Elaboratable<I: Interner> {
    // Required methods
    fn predicate(&self) -> I::Predicate;
    fn child(&self, clause: I::Clause) -> Self;
    fn child_with_derived_cause(
        &self,
        clause: I::Clause,
        span: I::Span,
        parent_trait_pred: Binder<I, TraitPredicate<I>>,
        index: usize,
    ) -> Self;
}
Expand description

Describes how to elaborate an obligation into a sub-obligation.

Required Methods§

Source

fn predicate(&self) -> I::Predicate

Source

fn child(&self, clause: I::Clause) -> Self

Source

fn child_with_derived_cause( &self, clause: I::Clause, span: I::Span, parent_trait_pred: Binder<I, TraitPredicate<I>>, index: usize, ) -> Self

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§