Trait rustc_middle::ty::fold::TypeSuperFoldable
source · pub trait TypeSuperFoldable<'tcx>: TypeFoldable<'tcx> {
fn try_super_fold_with<F: FallibleTypeFolder<'tcx>>(
self,
folder: &mut F
) -> Result<Self, F::Error>;
fn super_fold_with<F: TypeFolder<'tcx>>(self, folder: &mut F) -> Self { ... }
}
Required Methods
sourcefn try_super_fold_with<F: FallibleTypeFolder<'tcx>>(
self,
folder: &mut F
) -> Result<Self, F::Error>
fn try_super_fold_with<F: FallibleTypeFolder<'tcx>>(
self,
folder: &mut F
) -> Result<Self, F::Error>
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)
.
Provided Methods
sourcefn super_fold_with<F: TypeFolder<'tcx>>(self, folder: &mut F) -> Self
fn super_fold_with<F: TypeFolder<'tcx>>(self, folder: &mut F) -> Self
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
.