# Trait rustc_type_ir::elaborate::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

## Object Safety§

This trait is not object safe.

## Implementors§