pub trait TypeSuperFoldable<'tcx>: TypeFoldable<'tcx> {
    fn try_super_fold_with<F: FallibleTypeFolder<'tcx>>(
        self,
        folder: &mut F
    ) -> Result<Self, F::Error>; fn super_visit_with<V: TypeVisitor<'tcx>>(
        &self,
        visitor: &mut V
    ) -> ControlFlow<V::BreakTy>; fn super_fold_with<F: TypeFolder<'tcx, Error = !>>(
        self,
        folder: &mut F
    ) -> Self { ... } }

Required Methods

Provides a default fold for a type of interest. This should only be called within TypeFolder methods, when a non-custom traversal is desired for the value of the type of interest passed to that method. For example, in MyFolder::try_fold_ty(ty), it is valid to call ty.try_super_fold_with(self), but any other folding should be done with xyz.try_fold_with(self).

Provides a default visit for a type of interest. This should only be called within TypeVisitor methods, when a non-custom traversal is desired for the value of the type of interest passed to that method. For example, in MyVisitor::visit_ty(ty), it is valid to call ty.super_visit_with(self), but any other visiting should be done with xyz.visit_with(self).

Provided Methods

A convenient alternative to try_super_fold_with for use with infallible folders. Do not override this method, to ensure coherence with try_super_fold_with.

Implementors