Trait rustc::middle::ty_fold::TypeFoldableUnstable
[-] [+]
[src]
pub trait TypeFoldable<'tcx>: Repr<'tcx> + Clone {
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, T: TypeFoldable<'tcx>> TypeFoldable<'tcx> for Normalized<'tcx, T>impl<'tcx> TypeFoldable<'tcx> for ()impl<'tcx> TypeFoldable<'tcx> for Unsafetyimpl<'tcx> TypeFoldable<'tcx> for Abiimpl<'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> + Repr<'tcx> + Clone> 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 Ty<'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 field<'tcx>impl<'tcx> TypeFoldable<'tcx> for Regionimpl<'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 BuiltinBoundsimpl<'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 ObjectLifetimeDefaultimpl<'tcx> TypeFoldable<'tcx> for RegionParameterDefimpl<'tcx> TypeFoldable<'tcx> for Generics<'tcx>impl<'tcx> TypeFoldable<'tcx> for GenericPredicates<'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 InstantiatedPredicates<'tcx>impl<'tcx, O> TypeFoldable<'tcx> for Obligation<'tcx, O> where O: TypeFoldable<'tcx>impl<'tcx, N: TypeFoldable<'tcx>> TypeFoldable<'tcx> for VtableImplData<'tcx, N>impl<'tcx, N: TypeFoldable<'tcx>> TypeFoldable<'tcx> for VtableDefaultImplData<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 VtableObjectData<'tcx>impl<'tcx> TypeFoldable<'tcx> for EquatePredicate<'tcx>impl<'tcx> TypeFoldable<'tcx> for TraitPredicate<'tcx>impl<'tcx, T, U> TypeFoldable<'tcx> for OutlivesPredicate<T, U> where T: TypeFoldable<'tcx>, U: TypeFoldable<'tcx>impl<'tcx> TypeFoldable<'tcx> for ClosureUpvar<'tcx>impl<'a, 'tcx> TypeFoldable<'tcx> for ParameterEnvironment<'a, 'tcx> where 'tcx: 'a