Trait rustc_lint::middle::ty_fold::TypeFoldableUnstable
[-] [+]
[src]
pub trait TypeFoldable<'tcx>: Repr<'tcx> + Clone {
fn fold_with<F>(&self, folder: &mut F) -> Self where F: TypeFolder<'tcx>;
}
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>(&self, folder: &mut F) -> Self where F: TypeFolder<'tcx>
Implementors
impl<'tcx, T> TypeFoldable<'tcx> for Normalized<'tcx, T> where T: TypeFoldable<'tcx>
impl<'tcx> TypeFoldable<'tcx> for ()
impl<'tcx> TypeFoldable<'tcx> for Unsafety
impl<'tcx> TypeFoldable<'tcx> for Abi
impl<'tcx, T, U> TypeFoldable<'tcx> for (T, U) where T: TypeFoldable<'tcx>, U: TypeFoldable<'tcx>
impl<'tcx, T> TypeFoldable<'tcx> for Option<T> where T: TypeFoldable<'tcx>
impl<'tcx, T> TypeFoldable<'tcx> for Rc<T> where T: TypeFoldable<'tcx>
impl<'tcx, T> TypeFoldable<'tcx> for Box<T> where T: TypeFoldable<'tcx>
impl<'tcx, T> TypeFoldable<'tcx> for Vec<T> where T: TypeFoldable<'tcx>
impl<'tcx, T> TypeFoldable<'tcx> for Binder<T> where T: TypeFoldable<'tcx> + Repr<'tcx> + Clone
impl<'tcx, T> TypeFoldable<'tcx> for OwnedSlice<T> where T: TypeFoldable<'tcx>
impl<'tcx, T> TypeFoldable<'tcx> for VecPerParamSpace<T> where T: TypeFoldable<'tcx>
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 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 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 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> for VtableImplData<'tcx, N> where N: TypeFoldable<'tcx>
impl<'tcx, N> TypeFoldable<'tcx> for VtableDefaultImplData<N> where N: TypeFoldable<'tcx>
impl<'tcx, N> TypeFoldable<'tcx> for VtableBuiltinData<N> where N: TypeFoldable<'tcx>
impl<'tcx, N> TypeFoldable<'tcx> for Vtable<'tcx, N> where N: TypeFoldable<'tcx>
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 U: TypeFoldable<'tcx>, T: TypeFoldable<'tcx>
impl<'tcx> TypeFoldable<'tcx> for ClosureUpvar<'tcx>
impl<'a, 'tcx> TypeFoldable<'tcx> for ParameterEnvironment<'a, 'tcx> where 'tcx: 'a