Trait rustc_trans::middle::ty_fold::TypeFoldableExperimental
[-]
[+]
[src]
pub trait TypeFoldable<'tcx> { fn fold_with<F: TypeFolder<'tcx>>(&self, folder: &mut F) -> Self; }
The TypeFoldable trait is implemented for every type that can be folded. Basically, every type that has a corresponding method in TypeFolder.
Required Methods
fn fold_with<F: TypeFolder<'tcx>>(&self, folder: &mut F) -> Self
Implementors
impl<'tcx> TypeFoldable<'tcx> for ()
impl<'tcx, T: TypeFoldable<'tcx>, U: TypeFoldable<'tcx>> TypeFoldable<'tcx> for (T, U)
impl<'tcx, T: TypeFoldable<'tcx>> TypeFoldable<'tcx> for Option<T>
impl<'tcx, T: TypeFoldable<'tcx>> TypeFoldable<'tcx> for Rc<T>
impl<'tcx, T: TypeFoldable<'tcx>> TypeFoldable<'tcx> for Box<T>
impl<'tcx, T: TypeFoldable<'tcx>> TypeFoldable<'tcx> for Vec<T>
impl<'tcx, T: TypeFoldable<'tcx>> TypeFoldable<'tcx> for Binder<T>
impl<'tcx, T: TypeFoldable<'tcx>> TypeFoldable<'tcx> for OwnedSlice<T>
impl<'tcx, T: TypeFoldable<'tcx>> TypeFoldable<'tcx> for VecPerParamSpace<T>
impl<'tcx> TypeFoldable<'tcx> for TraitStore
impl<'tcx> TypeFoldable<'tcx> for &'tcx TyS<'tcx>
impl<'tcx> TypeFoldable<'tcx> for BareFnTy<'tcx>
impl<'tcx> TypeFoldable<'tcx> for ClosureTy<'tcx>
impl<'tcx> TypeFoldable<'tcx> for mt<'tcx>
impl<'tcx> TypeFoldable<'tcx> for FnOutput<'tcx>
impl<'tcx> TypeFoldable<'tcx> for FnSig<'tcx>
impl<'tcx> TypeFoldable<'tcx> for TraitRef<'tcx>
impl<'tcx> TypeFoldable<'tcx> for Region
impl<'tcx> TypeFoldable<'tcx> for Substs<'tcx>
impl<'tcx> TypeFoldable<'tcx> for ItemSubsts<'tcx>
impl<'tcx> TypeFoldable<'tcx> for AutoRef<'tcx>
impl<'tcx> TypeFoldable<'tcx> for MethodOrigin<'tcx>
impl<'tcx> TypeFoldable<'tcx> for vtable_origin<'tcx>
impl<'tcx> TypeFoldable<'tcx> for EnumSet<BuiltinBound>
impl<'tcx> TypeFoldable<'tcx> for ExistentialBounds<'tcx>
impl<'tcx> TypeFoldable<'tcx> for ParamBounds<'tcx>
impl<'tcx> TypeFoldable<'tcx> for TypeParameterDef<'tcx>
impl<'tcx> TypeFoldable<'tcx> for RegionParameterDef
impl<'tcx> TypeFoldable<'tcx> for Generics<'tcx>
impl<'tcx> TypeFoldable<'tcx> for Predicate<'tcx>
impl<'tcx> TypeFoldable<'tcx> for ProjectionPredicate<'tcx>
impl<'tcx> TypeFoldable<'tcx> for ProjectionTy<'tcx>
impl<'tcx> TypeFoldable<'tcx> for GenericBounds<'tcx>
impl<'tcx> TypeFoldable<'tcx> for UnsizeKind<'tcx>
impl<'tcx, O> TypeFoldable<'tcx> for Obligation<'tcx, O>
impl<'tcx, N: TypeFoldable<'tcx>> TypeFoldable<'tcx> for VtableImplData<'tcx, N>
impl<'tcx, N: TypeFoldable<'tcx>> TypeFoldable<'tcx> for VtableBuiltinData<N>
impl<'tcx, N: TypeFoldable<'tcx>> TypeFoldable<'tcx> for Vtable<'tcx, N>
impl<'tcx> TypeFoldable<'tcx> for EquatePredicate<'tcx>
impl<'tcx> TypeFoldable<'tcx> for TraitPredicate<'tcx>
impl<'tcx, T, U> TypeFoldable<'tcx> for OutlivesPredicate<T, U>