Trait chalk_ir::fold::SuperFold [−][src]
pub trait SuperFold<I: Interner>: Fold<I> { fn super_fold_with<'i>(
self,
folder: &mut dyn Folder<'i, I>,
outer_binder: DebruijnIndex
) -> Fallible<Self::Result>
where
I: 'i; }
Expand description
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>,
outer_binder: DebruijnIndex
) -> Fallible<Self::Result> where
I: 'i,
[src]
fn super_fold_with<'i>(
self,
folder: &mut dyn Folder<'i, I>,
outer_binder: DebruijnIndex
) -> Fallible<Self::Result> where
I: 'i,
[src]Recursively folds the value.
Implementors
impl<I> SuperFold<I> for Const<I> where
I: Interner,
[src]
impl<I> SuperFold<I> for Const<I> where
I: Interner,
[src]fn super_fold_with<'i>(
self,
folder: &mut dyn Folder<'i, I>,
outer_binder: DebruijnIndex
) -> Fallible<Const<I>> where
I: 'i,
[src]
self,
folder: &mut dyn Folder<'i, I>,
outer_binder: DebruijnIndex
) -> Fallible<Const<I>> where
I: 'i,
impl<I> SuperFold<I> for Lifetime<I> where
I: Interner,
[src]
impl<I> SuperFold<I> for Lifetime<I> where
I: Interner,
[src]fn super_fold_with<'i>(
self,
folder: &mut dyn Folder<'i, I>,
outer_binder: DebruijnIndex
) -> Fallible<Lifetime<I>> where
I: 'i,
[src]
self,
folder: &mut dyn Folder<'i, I>,
outer_binder: DebruijnIndex
) -> Fallible<Lifetime<I>> where
I: 'i,
impl<I> SuperFold<I> for Ty<I> where
I: Interner,
[src]
impl<I> SuperFold<I> for Ty<I> where
I: Interner,
[src]“Super fold” for a type invokes te more detailed callbacks on the type
fn super_fold_with<'i>(
self,
folder: &mut dyn Folder<'i, I>,
outer_binder: DebruijnIndex
) -> Fallible<Ty<I>> where
I: 'i,
[src]
self,
folder: &mut dyn Folder<'i, I>,
outer_binder: DebruijnIndex
) -> Fallible<Ty<I>> where
I: 'i,
impl<I: Interner> SuperFold<I> for Goal<I>
[src]
impl<I: Interner> SuperFold<I> for Goal<I>
[src]Superfold folds recursively.
fn super_fold_with<'i>(
self,
folder: &mut dyn Folder<'i, I>,
outer_binder: DebruijnIndex
) -> Fallible<Self::Result> where
I: 'i,
[src]
self,
folder: &mut dyn Folder<'i, I>,
outer_binder: DebruijnIndex
) -> Fallible<Self::Result> where
I: 'i,
impl<I: Interner> SuperFold<I> for ProgramClause<I>
[src]
impl<I: Interner> SuperFold<I> for ProgramClause<I>
[src]fn super_fold_with<'i>(
self,
folder: &mut dyn Folder<'i, I>,
outer_binder: DebruijnIndex
) -> Fallible<Self::Result> where
I: 'i,
[src]
self,
folder: &mut dyn Folder<'i, I>,
outer_binder: DebruijnIndex
) -> Fallible<Self::Result> where
I: 'i,
impl<I: Interner> SuperFold<I> for ProgramClauseData<I>
[src]
impl<I: Interner> SuperFold<I> for ProgramClauseData<I>
[src]fn super_fold_with<'i>(
self,
folder: &mut dyn Folder<'i, I>,
outer_binder: DebruijnIndex
) -> Fallible<Self::Result> where
I: 'i,
[src]
self,
folder: &mut dyn Folder<'i, I>,
outer_binder: DebruijnIndex
) -> Fallible<Self::Result> where
I: 'i,