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 Unsafety
impl<'tcx> TypeFoldable<'tcx> for Abi
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> + 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 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 BuiltinBounds
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 ObjectLifetimeDefault
impl<'tcx> TypeFoldable<'tcx> for RegionParameterDef
impl<'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