[][src]Trait chalk_ir::fold::SuperFold

pub trait SuperFold<I: Interner, TI: TargetInterner<I> = I>: Fold<I, TI> {
    fn super_fold_with<'i>(
        &self,
        folder: &mut dyn Folder<'i, I, TI>,
        outer_binder: DebruijnIndex
    ) -> Fallible<Self::Result>
    where
        I: 'i,
        TI: 'i
; }

For types where "fold" invokes a callback on the Folder, the SuperFold trait captures the recursive behavior that folds all the contents of the type.

Required methods

fn super_fold_with<'i>(
    &self,
    folder: &mut dyn Folder<'i, I, TI>,
    outer_binder: DebruijnIndex
) -> Fallible<Self::Result> where
    I: 'i,
    TI: 'i, 

Recursively folds the value.

Loading content...

Implementors

impl<I, TI> SuperFold<I, TI> for Const<I> where
    I: Interner,
    TI: TargetInterner<I>, 
[src]

impl<I, TI> SuperFold<I, TI> for Lifetime<I> where
    I: Interner,
    TI: TargetInterner<I>, 
[src]

impl<I, TI> SuperFold<I, TI> for Ty<I> where
    I: Interner,
    TI: TargetInterner<I>, 
[src]

"Super fold" for a type invokes te more detailed callbacks on the type

impl<I: Interner, TI: TargetInterner<I>> SuperFold<I, TI> for Goal<I>[src]

Superfold folds recursively.

impl<I: Interner, TI: TargetInterner<I>> SuperFold<I, TI> for ProgramClause<I>[src]

impl<I: Interner, TI: TargetInterner<I>> SuperFold<I, TI> for ProgramClauseData<I>[src]

Loading content...