Skip to main content

TypeFoldable

Trait TypeFoldable 

Source
pub trait TypeFoldable<I>: TypeVisitable<I> + Clone
where I: Interner,
{ // Required methods fn try_fold_with<F>( self, folder: &mut F, ) -> Result<Self, <F as FallibleTypeFolder<I>>::Error> where F: FallibleTypeFolder<I>; fn fold_with<F>(self, folder: &mut F) -> Self where F: TypeFolder<I>; }
Expand description

This trait is implemented for every type that can be folded, providing the skeleton of the traversal.

To implement this conveniently, use the derive macro located in rustc_macros.

This trait is a sub-trait of TypeVisitable. This is because many TypeFolder instances use the methods in TypeVisitableExt while folding, which means in practice almost every foldable type needs to also be visitable. (However, there are some types that are visitable without being foldable.)

Required Methods§

Source

fn try_fold_with<F>( self, folder: &mut F, ) -> Result<Self, <F as FallibleTypeFolder<I>>::Error>
where F: FallibleTypeFolder<I>,

The entry point for folding. To fold a value t with a folder f call: t.try_fold_with(f).

For most types, this just traverses the value, calling try_fold_with on each field/element.

For types of interest (such as Ty), the implementation of this method calls a folder method specifically for that type (such as F::try_fold_ty). This is where control transfers from TypeFoldable to FallibleTypeFolder.

Source

fn fold_with<F>(self, folder: &mut F) -> Self
where F: TypeFolder<I>,

The entry point for folding. To fold a value t with a folder f call: t.fold_with(f).

For most types, this just traverses the value, calling fold_with on each field/element.

For types of interest (such as Ty), the implementation of this method calls a folder method specifically for that type (such as F::fold_ty). This is where control transfers from TypeFoldable to TypeFolder.

Same as TypeFoldable::try_fold_with, but not fallible. Make sure to keep the behavior in sync across functions.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementations on Foreign Types§

Source§

impl<'tcx, O> TypeFoldable<TyCtxt<'tcx>> for AssertKind<O>
where O: TypeFoldable<TyCtxt<'tcx>>,

Source§

fn try_fold_with<__F>( self, __folder: &mut __F, ) -> Result<AssertKind<O>, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where __F: FallibleTypeFolder<TyCtxt<'tcx>>,

Source§

fn fold_with<__F>(self, __folder: &mut __F) -> AssertKind<O>
where __F: TypeFolder<TyCtxt<'tcx>>,

Source§

impl<'tcx, T> TypeFoldable<TyCtxt<'tcx>> for ClearCrossCrate<T>
where T: TypeFoldable<TyCtxt<'tcx>>,

Source§

fn try_fold_with<__F>( self, __folder: &mut __F, ) -> Result<ClearCrossCrate<T>, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where __F: FallibleTypeFolder<TyCtxt<'tcx>>,

Source§

fn fold_with<__F>(self, __folder: &mut __F) -> ClearCrossCrate<T>
where __F: TypeFolder<TyCtxt<'tcx>>,

Source§

impl<'tcx, T> TypeFoldable<TyCtxt<'tcx>> for ParamEnvAnd<'tcx, T>
where T: TypeFoldable<TyCtxt<'tcx>>,

Source§

fn try_fold_with<__F>( self, __folder: &mut __F, ) -> Result<ParamEnvAnd<'tcx, T>, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where __F: FallibleTypeFolder<TyCtxt<'tcx>>,

Source§

fn fold_with<__F>(self, __folder: &mut __F) -> ParamEnvAnd<'tcx, T>
where __F: TypeFolder<TyCtxt<'tcx>>,

Source§

impl<'tcx, T> TypeFoldable<TyCtxt<'tcx>> for PseudoCanonicalInput<'tcx, T>
where T: TypeFoldable<TyCtxt<'tcx>>,

Source§

fn try_fold_with<__F>( self, __folder: &mut __F, ) -> Result<PseudoCanonicalInput<'tcx, T>, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where __F: FallibleTypeFolder<TyCtxt<'tcx>>,

Source§

fn fold_with<__F>(self, __folder: &mut __F) -> PseudoCanonicalInput<'tcx, T>
where __F: TypeFolder<TyCtxt<'tcx>>,

Source§

impl<'tcx, T> TypeFoldable<TyCtxt<'tcx>> for Spanned<T>
where T: TypeFoldable<TyCtxt<'tcx>> + Debug + Clone,

Source§

fn try_fold_with<F>( self, folder: &mut F, ) -> Result<Spanned<T>, <F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where F: FallibleTypeFolder<TyCtxt<'tcx>>,

Source§

fn fold_with<F>(self, folder: &mut F) -> Spanned<T>
where F: TypeFolder<TyCtxt<'tcx>>,

Source§

impl<'tcx, V, T> TypeFoldable<TyCtxt<'tcx>> for ProjectionElem<V, T>
where T: TypeFoldable<TyCtxt<'tcx>>, V: TypeFoldable<TyCtxt<'tcx>>,

Source§

fn try_fold_with<__F>( self, __folder: &mut __F, ) -> Result<ProjectionElem<V, T>, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where __F: FallibleTypeFolder<TyCtxt<'tcx>>,

Source§

fn fold_with<__F>(self, __folder: &mut __F) -> ProjectionElem<V, T>
where __F: TypeFolder<TyCtxt<'tcx>>,

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for Adjust

Source§

fn try_fold_with<__F>( self, __folder: &mut __F, ) -> Result<Adjust, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where __F: FallibleTypeFolder<TyCtxt<'tcx>>,

Source§

fn fold_with<__F>(self, __folder: &mut __F) -> Adjust
where __F: TypeFolder<TyCtxt<'tcx>>,

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for Adjustment<'tcx>

Source§

fn try_fold_with<__F>( self, __folder: &mut __F, ) -> Result<Adjustment<'tcx>, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where __F: FallibleTypeFolder<TyCtxt<'tcx>>,

Source§

fn fold_with<__F>(self, __folder: &mut __F) -> Adjustment<'tcx>
where __F: TypeFolder<TyCtxt<'tcx>>,

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for AdtKind

Source§

fn try_fold_with<F>( self, _: &mut F, ) -> Result<AdtKind, <F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where F: FallibleTypeFolder<TyCtxt<'tcx>>,

Source§

fn fold_with<F>(self, _: &mut F) -> AdtKind
where F: TypeFolder<TyCtxt<'tcx>>,

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for AggregateKind<'tcx>

Source§

fn try_fold_with<__F>( self, __folder: &mut __F, ) -> Result<AggregateKind<'tcx>, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where __F: FallibleTypeFolder<TyCtxt<'tcx>>,

Source§

fn fold_with<__F>(self, __folder: &mut __F) -> AggregateKind<'tcx>
where __F: TypeFolder<TyCtxt<'tcx>>,

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for AnnotationSource

Source§

fn try_fold_with<__F>( self, __folder: &mut __F, ) -> Result<AnnotationSource, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where __F: FallibleTypeFolder<TyCtxt<'tcx>>,

Source§

fn fold_with<__F>(self, __folder: &mut __F) -> AnnotationSource
where __F: TypeFolder<TyCtxt<'tcx>>,

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for AssocItem

Source§

fn try_fold_with<F>( self, _: &mut F, ) -> Result<AssocItem, <F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where F: FallibleTypeFolder<TyCtxt<'tcx>>,

Source§

fn fold_with<F>(self, _: &mut F) -> AssocItem
where F: TypeFolder<TyCtxt<'tcx>>,

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for AssocKind

Source§

fn try_fold_with<F>( self, _: &mut F, ) -> Result<AssocKind, <F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where F: FallibleTypeFolder<TyCtxt<'tcx>>,

Source§

fn fold_with<F>(self, _: &mut F) -> AssocKind
where F: TypeFolder<TyCtxt<'tcx>>,

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for Asyncness

Source§

fn try_fold_with<__F>( self, __folder: &mut __F, ) -> Result<Asyncness, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where __F: FallibleTypeFolder<TyCtxt<'tcx>>,

Source§

fn fold_with<__F>(self, __folder: &mut __F) -> Asyncness
where __F: TypeFolder<TyCtxt<'tcx>>,

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for AttributeKind

Source§

fn try_fold_with<F>( self, _: &mut F, ) -> Result<AttributeKind, <F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where F: FallibleTypeFolder<TyCtxt<'tcx>>,

Source§

fn fold_with<F>(self, _: &mut F) -> AttributeKind
where F: TypeFolder<TyCtxt<'tcx>>,

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for AutoBorrow

Source§

fn try_fold_with<__F>( self, __folder: &mut __F, ) -> Result<AutoBorrow, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where __F: FallibleTypeFolder<TyCtxt<'tcx>>,

Source§

fn fold_with<__F>(self, __folder: &mut __F) -> AutoBorrow
where __F: TypeFolder<TyCtxt<'tcx>>,

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for AutoBorrowMutability

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for BackwardIncompatibleDropReason

Source§

fn try_fold_with<__F>( self, __folder: &mut __F, ) -> Result<BackwardIncompatibleDropReason, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where __F: FallibleTypeFolder<TyCtxt<'tcx>>,

Source§

fn fold_with<__F>(self, __folder: &mut __F) -> BackwardIncompatibleDropReason
where __F: TypeFolder<TyCtxt<'tcx>>,

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for BasicBlock

Source§

fn try_fold_with<F>( self, _: &mut F, ) -> Result<BasicBlock, <F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where F: FallibleTypeFolder<TyCtxt<'tcx>>,

Source§

fn fold_with<F>(self, _: &mut F) -> BasicBlock
where F: TypeFolder<TyCtxt<'tcx>>,

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for BasicBlockData<'tcx>

Source§

fn try_fold_with<__F>( self, __folder: &mut __F, ) -> Result<BasicBlockData<'tcx>, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where __F: FallibleTypeFolder<TyCtxt<'tcx>>,

Source§

fn fold_with<__F>(self, __folder: &mut __F) -> BasicBlockData<'tcx>
where __F: TypeFolder<TyCtxt<'tcx>>,

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for BasicBlocks<'tcx>

Source§

fn try_fold_with<__F>( self, __folder: &mut __F, ) -> Result<BasicBlocks<'tcx>, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where __F: FallibleTypeFolder<TyCtxt<'tcx>>,

Source§

fn fold_with<__F>(self, __folder: &mut __F) -> BasicBlocks<'tcx>
where __F: TypeFolder<TyCtxt<'tcx>>,

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for BinOp

Source§

fn try_fold_with<__F>( self, __folder: &mut __F, ) -> Result<BinOp, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where __F: FallibleTypeFolder<TyCtxt<'tcx>>,

Source§

fn fold_with<__F>(self, __folder: &mut __F) -> BinOp
where __F: TypeFolder<TyCtxt<'tcx>>,

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for BindingForm<'tcx>

Source§

fn try_fold_with<F>( self, _: &mut F, ) -> Result<BindingForm<'tcx>, <F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where F: FallibleTypeFolder<TyCtxt<'tcx>>,

Source§

fn fold_with<F>(self, _: &mut F) -> BindingForm<'tcx>
where F: TypeFolder<TyCtxt<'tcx>>,

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for BlockTailInfo

Source§

fn try_fold_with<F>( self, _: &mut F, ) -> Result<BlockTailInfo, <F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where F: FallibleTypeFolder<TyCtxt<'tcx>>,

Source§

fn fold_with<F>(self, _: &mut F) -> BlockTailInfo
where F: TypeFolder<TyCtxt<'tcx>>,

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for Body<'tcx>

Source§

fn try_fold_with<__F>( self, __folder: &mut __F, ) -> Result<Body<'tcx>, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where __F: FallibleTypeFolder<TyCtxt<'tcx>>,

Source§

fn fold_with<__F>(self, __folder: &mut __F) -> Body<'tcx>
where __F: TypeFolder<TyCtxt<'tcx>>,

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for BorrowKind

Source§

fn try_fold_with<__F>( self, __folder: &mut __F, ) -> Result<BorrowKind, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where __F: FallibleTypeFolder<TyCtxt<'tcx>>,

Source§

fn fold_with<__F>(self, __folder: &mut __F) -> BorrowKind
where __F: TypeFolder<TyCtxt<'tcx>>,

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for BorrowKind

Source§

fn try_fold_with<F>( self, _: &mut F, ) -> Result<BorrowKind, <F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where F: FallibleTypeFolder<TyCtxt<'tcx>>,

Source§

fn fold_with<F>(self, _: &mut F) -> BorrowKind
where F: TypeFolder<TyCtxt<'tcx>>,

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for CallSource

Source§

fn try_fold_with<__F>( self, __folder: &mut __F, ) -> Result<CallSource, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where __F: FallibleTypeFolder<TyCtxt<'tcx>>,

Source§

fn fold_with<__F>(self, __folder: &mut __F) -> CallSource
where __F: TypeFolder<TyCtxt<'tcx>>,

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for CanonicalUserTypeAnnotation<'tcx>

Source§

fn try_fold_with<__F>( self, __folder: &mut __F, ) -> Result<CanonicalUserTypeAnnotation<'tcx>, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where __F: FallibleTypeFolder<TyCtxt<'tcx>>,

Source§

fn fold_with<__F>(self, __folder: &mut __F) -> CanonicalUserTypeAnnotation<'tcx>
where __F: TypeFolder<TyCtxt<'tcx>>,

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for CaptureInfo

Source§

fn try_fold_with<__F>( self, __folder: &mut __F, ) -> Result<CaptureInfo, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where __F: FallibleTypeFolder<TyCtxt<'tcx>>,

Source§

fn fold_with<__F>(self, __folder: &mut __F) -> CaptureInfo
where __F: TypeFolder<TyCtxt<'tcx>>,

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for CapturedPlace<'tcx>

Source§

fn try_fold_with<__F>( self, __folder: &mut __F, ) -> Result<CapturedPlace<'tcx>, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where __F: FallibleTypeFolder<TyCtxt<'tcx>>,

Source§

fn fold_with<__F>(self, __folder: &mut __F) -> CapturedPlace<'tcx>
where __F: TypeFolder<TyCtxt<'tcx>>,

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for CastKind

Source§

fn try_fold_with<__F>( self, __folder: &mut __F, ) -> Result<CastKind, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where __F: FallibleTypeFolder<TyCtxt<'tcx>>,

Source§

fn fold_with<__F>(self, __folder: &mut __F) -> CastKind
where __F: TypeFolder<TyCtxt<'tcx>>,

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for CastKind

Source§

fn try_fold_with<F>( self, _: &mut F, ) -> Result<CastKind, <F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where F: FallibleTypeFolder<TyCtxt<'tcx>>,

Source§

fn fold_with<F>(self, _: &mut F) -> CastKind
where F: TypeFolder<TyCtxt<'tcx>>,

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for Clause<'tcx>

Source§

fn try_fold_with<F>( self, folder: &mut F, ) -> Result<Clause<'tcx>, <F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where F: FallibleTypeFolder<TyCtxt<'tcx>>,

Source§

fn fold_with<F>(self, folder: &mut F) -> Clause<'tcx>
where F: TypeFolder<TyCtxt<'tcx>>,

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for ClosureSizeProfileData<'tcx>

Source§

fn try_fold_with<__F>( self, __folder: &mut __F, ) -> Result<ClosureSizeProfileData<'tcx>, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where __F: FallibleTypeFolder<TyCtxt<'tcx>>,

Source§

fn fold_with<__F>(self, __folder: &mut __F) -> ClosureSizeProfileData<'tcx>
where __F: TypeFolder<TyCtxt<'tcx>>,

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for Const<'tcx>

Source§

fn try_fold_with<__F>( self, __folder: &mut __F, ) -> Result<Const<'tcx>, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where __F: FallibleTypeFolder<TyCtxt<'tcx>>,

Source§

fn fold_with<__F>(self, __folder: &mut __F) -> Const<'tcx>
where __F: TypeFolder<TyCtxt<'tcx>>,

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for Const<'tcx>

Source§

fn try_fold_with<F>( self, folder: &mut F, ) -> Result<Const<'tcx>, <F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where F: FallibleTypeFolder<TyCtxt<'tcx>>,

Source§

fn fold_with<F>(self, folder: &mut F) -> Const<'tcx>
where F: TypeFolder<TyCtxt<'tcx>>,

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for ConstOperand<'tcx>

Source§

fn try_fold_with<__F>( self, __folder: &mut __F, ) -> Result<ConstOperand<'tcx>, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where __F: FallibleTypeFolder<TyCtxt<'tcx>>,

Source§

fn fold_with<__F>(self, __folder: &mut __F) -> ConstOperand<'tcx>
where __F: TypeFolder<TyCtxt<'tcx>>,

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for ConstValue

Source§

fn try_fold_with<F>( self, _: &mut F, ) -> Result<ConstValue, <F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where F: FallibleTypeFolder<TyCtxt<'tcx>>,

Source§

fn fold_with<F>(self, _: &mut F) -> ConstValue
where F: TypeFolder<TyCtxt<'tcx>>,

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for ConstraintCategory<'tcx>

Source§

fn try_fold_with<__F>( self, __folder: &mut __F, ) -> Result<ConstraintCategory<'tcx>, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where __F: FallibleTypeFolder<TyCtxt<'tcx>>,

Source§

fn fold_with<__F>(self, __folder: &mut __F) -> ConstraintCategory<'tcx>
where __F: TypeFolder<TyCtxt<'tcx>>,

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for CopyNonOverlapping<'tcx>

Source§

fn try_fold_with<__F>( self, __folder: &mut __F, ) -> Result<CopyNonOverlapping<'tcx>, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where __F: FallibleTypeFolder<TyCtxt<'tcx>>,

Source§

fn fold_with<__F>(self, __folder: &mut __F) -> CopyNonOverlapping<'tcx>
where __F: TypeFolder<TyCtxt<'tcx>>,

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for CoroutineInfo<'tcx>

Source§

fn try_fold_with<__F>( self, __folder: &mut __F, ) -> Result<CoroutineInfo<'tcx>, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where __F: FallibleTypeFolder<TyCtxt<'tcx>>,

Source§

fn fold_with<__F>(self, __folder: &mut __F) -> CoroutineInfo<'tcx>
where __F: TypeFolder<TyCtxt<'tcx>>,

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for CoroutineKind

Source§

fn try_fold_with<F>( self, _: &mut F, ) -> Result<CoroutineKind, <F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where F: FallibleTypeFolder<TyCtxt<'tcx>>,

Source§

fn fold_with<F>(self, _: &mut F) -> CoroutineKind
where F: TypeFolder<TyCtxt<'tcx>>,

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for CoroutineLayout<'tcx>

Source§

fn try_fold_with<__F>( self, __folder: &mut __F, ) -> Result<CoroutineLayout<'tcx>, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where __F: FallibleTypeFolder<TyCtxt<'tcx>>,

Source§

fn fold_with<__F>(self, __folder: &mut __F) -> CoroutineLayout<'tcx>
where __F: TypeFolder<TyCtxt<'tcx>>,

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for CoroutineSavedLocal

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for CoroutineSavedTy<'tcx>

Source§

fn try_fold_with<__F>( self, __folder: &mut __F, ) -> Result<CoroutineSavedTy<'tcx>, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where __F: FallibleTypeFolder<TyCtxt<'tcx>>,

Source§

fn fold_with<__F>(self, __folder: &mut __F) -> CoroutineSavedTy<'tcx>
where __F: TypeFolder<TyCtxt<'tcx>>,

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for DefId

Source§

fn try_fold_with<F>( self, _: &mut F, ) -> Result<DefId, <F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where F: FallibleTypeFolder<TyCtxt<'tcx>>,

Source§

fn fold_with<F>(self, _: &mut F) -> DefId
where F: TypeFolder<TyCtxt<'tcx>>,

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for DerefAdjustKind

Source§

fn try_fold_with<__F>( self, __folder: &mut __F, ) -> Result<DerefAdjustKind, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where __F: FallibleTypeFolder<TyCtxt<'tcx>>,

Source§

fn fold_with<__F>(self, __folder: &mut __F) -> DerefAdjustKind
where __F: TypeFolder<TyCtxt<'tcx>>,

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for ErrorGuaranteed

Source§

fn try_fold_with<F>( self, _folder: &mut F, ) -> Result<ErrorGuaranteed, <F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where F: FallibleTypeFolder<TyCtxt<'tcx>>,

Source§

fn fold_with<F>(self, _folder: &mut F) -> ErrorGuaranteed
where F: TypeFolder<TyCtxt<'tcx>>,

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for Expr<'tcx>

Source§

fn try_fold_with<__F>( self, __folder: &mut __F, ) -> Result<Expr<'tcx>, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where __F: FallibleTypeFolder<TyCtxt<'tcx>>,

Source§

fn fold_with<__F>(self, __folder: &mut __F) -> Expr<'tcx>
where __F: TypeFolder<TyCtxt<'tcx>>,

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for ExprKind

Source§

fn try_fold_with<__F>( self, __folder: &mut __F, ) -> Result<ExprKind, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where __F: FallibleTypeFolder<TyCtxt<'tcx>>,

Source§

fn fold_with<__F>(self, __folder: &mut __F) -> ExprKind
where __F: TypeFolder<TyCtxt<'tcx>>,

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for FakeReadCause

Source§

fn try_fold_with<F>( self, _: &mut F, ) -> Result<FakeReadCause, <F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where F: FallibleTypeFolder<TyCtxt<'tcx>>,

Source§

fn fold_with<F>(self, _: &mut F) -> FakeReadCause
where F: TypeFolder<TyCtxt<'tcx>>,

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for FieldIdx

Source§

fn try_fold_with<F>( self, _: &mut F, ) -> Result<FieldIdx, <F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where F: FallibleTypeFolder<TyCtxt<'tcx>>,

Source§

fn fold_with<F>(self, _: &mut F) -> FieldIdx
where F: TypeFolder<TyCtxt<'tcx>>,

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for GenericArg<'tcx>

Source§

fn try_fold_with<F>( self, folder: &mut F, ) -> Result<GenericArg<'tcx>, <F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where F: FallibleTypeFolder<TyCtxt<'tcx>>,

Source§

fn fold_with<F>(self, folder: &mut F) -> GenericArg<'tcx>
where F: TypeFolder<TyCtxt<'tcx>>,

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for GlobalId<'tcx>

Source§

fn try_fold_with<__F>( self, __folder: &mut __F, ) -> Result<GlobalId<'tcx>, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where __F: FallibleTypeFolder<TyCtxt<'tcx>>,

Source§

fn fold_with<__F>(self, __folder: &mut __F) -> GlobalId<'tcx>
where __F: TypeFolder<TyCtxt<'tcx>>,

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for HirId

Source§

fn try_fold_with<F>( self, _: &mut F, ) -> Result<HirId, <F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where F: FallibleTypeFolder<TyCtxt<'tcx>>,

Source§

fn fold_with<F>(self, _: &mut F) -> HirId
where F: TypeFolder<TyCtxt<'tcx>>,

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for Ident

Source§

fn try_fold_with<F>( self, _: &mut F, ) -> Result<Ident, <F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where F: FallibleTypeFolder<TyCtxt<'tcx>>,

Source§

fn fold_with<F>(self, _: &mut F) -> Ident
where F: TypeFolder<TyCtxt<'tcx>>,

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for InlineAsmMacro

Source§

fn try_fold_with<__F>( self, __folder: &mut __F, ) -> Result<InlineAsmMacro, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where __F: FallibleTypeFolder<TyCtxt<'tcx>>,

Source§

fn fold_with<__F>(self, __folder: &mut __F) -> InlineAsmMacro
where __F: TypeFolder<TyCtxt<'tcx>>,

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for InlineAsmOperand<'tcx>

Source§

fn try_fold_with<__F>( self, __folder: &mut __F, ) -> Result<InlineAsmOperand<'tcx>, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where __F: FallibleTypeFolder<TyCtxt<'tcx>>,

Source§

fn fold_with<__F>(self, __folder: &mut __F) -> InlineAsmOperand<'tcx>
where __F: TypeFolder<TyCtxt<'tcx>>,

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for InlineAsmOptions

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for InlineAsmRegOrRegClass

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for InlineAsmTemplatePiece

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for Instance<'tcx>

Source§

fn try_fold_with<__F>( self, __folder: &mut __F, ) -> Result<Instance<'tcx>, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where __F: FallibleTypeFolder<TyCtxt<'tcx>>,

Source§

fn fold_with<__F>(self, __folder: &mut __F) -> Instance<'tcx>
where __F: TypeFolder<TyCtxt<'tcx>>,

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for InstanceKind<'tcx>

Source§

fn try_fold_with<__F>( self, __folder: &mut __F, ) -> Result<InstanceKind<'tcx>, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where __F: FallibleTypeFolder<TyCtxt<'tcx>>,

Source§

fn fold_with<__F>(self, __folder: &mut __F) -> InstanceKind<'tcx>
where __F: TypeFolder<TyCtxt<'tcx>>,

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for Local

Source§

fn try_fold_with<F>( self, _: &mut F, ) -> Result<Local, <F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where F: FallibleTypeFolder<TyCtxt<'tcx>>,

Source§

fn fold_with<F>(self, _: &mut F) -> Local
where F: TypeFolder<TyCtxt<'tcx>>,

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for LocalDecl<'tcx>

Source§

fn try_fold_with<__F>( self, __folder: &mut __F, ) -> Result<LocalDecl<'tcx>, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where __F: FallibleTypeFolder<TyCtxt<'tcx>>,

Source§

fn fold_with<__F>(self, __folder: &mut __F) -> LocalDecl<'tcx>
where __F: TypeFolder<TyCtxt<'tcx>>,

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for LocalDefId

Source§

fn try_fold_with<F>( self, _: &mut F, ) -> Result<LocalDefId, <F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where F: FallibleTypeFolder<TyCtxt<'tcx>>,

Source§

fn fold_with<F>(self, _: &mut F) -> LocalDefId
where F: TypeFolder<TyCtxt<'tcx>>,

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for LocalInfo<'tcx>

Source§

fn try_fold_with<__F>( self, __folder: &mut __F, ) -> Result<LocalInfo<'tcx>, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where __F: FallibleTypeFolder<TyCtxt<'tcx>>,

Source§

fn fold_with<__F>(self, __folder: &mut __F) -> LocalInfo<'tcx>
where __F: TypeFolder<TyCtxt<'tcx>>,

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for MatchSource

Source§

fn try_fold_with<F>( self, _: &mut F, ) -> Result<MatchSource, <F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where F: FallibleTypeFolder<TyCtxt<'tcx>>,

Source§

fn fold_with<F>(self, _: &mut F) -> MatchSource
where F: TypeFolder<TyCtxt<'tcx>>,

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for MentionedItem<'tcx>

Source§

fn try_fold_with<__F>( self, __folder: &mut __F, ) -> Result<MentionedItem<'tcx>, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where __F: FallibleTypeFolder<TyCtxt<'tcx>>,

Source§

fn fold_with<__F>(self, __folder: &mut __F) -> MentionedItem<'tcx>
where __F: TypeFolder<TyCtxt<'tcx>>,

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for MirPhase

Source§

fn try_fold_with<F>( self, _: &mut F, ) -> Result<MirPhase, <F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where F: FallibleTypeFolder<TyCtxt<'tcx>>,

Source§

fn fold_with<F>(self, _: &mut F) -> MirPhase
where F: TypeFolder<TyCtxt<'tcx>>,

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for MirSource<'tcx>

Source§

fn try_fold_with<__F>( self, __folder: &mut __F, ) -> Result<MirSource<'tcx>, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where __F: FallibleTypeFolder<TyCtxt<'tcx>>,

Source§

fn fold_with<__F>(self, __folder: &mut __F) -> MirSource<'tcx>
where __F: TypeFolder<TyCtxt<'tcx>>,

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for NonDivergingIntrinsic<'tcx>

Source§

fn try_fold_with<__F>( self, __folder: &mut __F, ) -> Result<NonDivergingIntrinsic<'tcx>, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where __F: FallibleTypeFolder<TyCtxt<'tcx>>,

Source§

fn fold_with<__F>(self, __folder: &mut __F) -> NonDivergingIntrinsic<'tcx>
where __F: TypeFolder<TyCtxt<'tcx>>,

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for NotConstEvaluatable

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for Operand<'tcx>

Source§

fn try_fold_with<__F>( self, __folder: &mut __F, ) -> Result<Operand<'tcx>, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where __F: FallibleTypeFolder<TyCtxt<'tcx>>,

Source§

fn fold_with<__F>(self, __folder: &mut __F) -> Operand<'tcx>
where __F: TypeFolder<TyCtxt<'tcx>>,

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for OverloadedDeref

Source§

fn try_fold_with<__F>( self, __folder: &mut __F, ) -> Result<OverloadedDeref, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where __F: FallibleTypeFolder<TyCtxt<'tcx>>,

Source§

fn fold_with<__F>(self, __folder: &mut __F) -> OverloadedDeref
where __F: TypeFolder<TyCtxt<'tcx>>,

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for ParamEnv<'tcx>

Source§

fn try_fold_with<__F>( self, __folder: &mut __F, ) -> Result<ParamEnv<'tcx>, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where __F: FallibleTypeFolder<TyCtxt<'tcx>>,

Source§

fn fold_with<__F>(self, __folder: &mut __F) -> ParamEnv<'tcx>
where __F: TypeFolder<TyCtxt<'tcx>>,

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for ParamTy

Source§

fn try_fold_with<F>( self, _: &mut F, ) -> Result<ParamTy, <F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where F: FallibleTypeFolder<TyCtxt<'tcx>>,

Source§

fn fold_with<F>(self, _: &mut F) -> ParamTy
where F: TypeFolder<TyCtxt<'tcx>>,

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for PatAdjust

Source§

fn try_fold_with<__F>( self, __folder: &mut __F, ) -> Result<PatAdjust, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where __F: FallibleTypeFolder<TyCtxt<'tcx>>,

Source§

fn fold_with<__F>(self, __folder: &mut __F) -> PatAdjust
where __F: TypeFolder<TyCtxt<'tcx>>,

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for PatAdjustment<'tcx>

Source§

fn try_fold_with<__F>( self, __folder: &mut __F, ) -> Result<PatAdjustment<'tcx>, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where __F: FallibleTypeFolder<TyCtxt<'tcx>>,

Source§

fn fold_with<__F>(self, __folder: &mut __F) -> PatAdjustment<'tcx>
where __F: TypeFolder<TyCtxt<'tcx>>,

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for Pattern<'tcx>

Source§

fn try_fold_with<F>( self, folder: &mut F, ) -> Result<Pattern<'tcx>, <F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where F: FallibleTypeFolder<TyCtxt<'tcx>>,

Source§

fn fold_with<F>(self, folder: &mut F) -> Pattern<'tcx>
where F: TypeFolder<TyCtxt<'tcx>>,

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for Place<'tcx>

Source§

fn try_fold_with<__F>( self, __folder: &mut __F, ) -> Result<Place<'tcx>, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where __F: FallibleTypeFolder<TyCtxt<'tcx>>,

Source§

fn fold_with<__F>(self, __folder: &mut __F) -> Place<'tcx>
where __F: TypeFolder<TyCtxt<'tcx>>,

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for Place<'tcx>

Source§

fn try_fold_with<__F>( self, __folder: &mut __F, ) -> Result<Place<'tcx>, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where __F: FallibleTypeFolder<TyCtxt<'tcx>>,

Source§

fn fold_with<__F>(self, __folder: &mut __F) -> Place<'tcx>
where __F: TypeFolder<TyCtxt<'tcx>>,

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for PlaceBase

Source§

fn try_fold_with<__F>( self, __folder: &mut __F, ) -> Result<PlaceBase, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where __F: FallibleTypeFolder<TyCtxt<'tcx>>,

Source§

fn fold_with<__F>(self, __folder: &mut __F) -> PlaceBase
where __F: TypeFolder<TyCtxt<'tcx>>,

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for PlaceTy<'tcx>

Source§

fn try_fold_with<__F>( self, __folder: &mut __F, ) -> Result<PlaceTy<'tcx>, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where __F: FallibleTypeFolder<TyCtxt<'tcx>>,

Source§

fn fold_with<__F>(self, __folder: &mut __F) -> PlaceTy<'tcx>
where __F: TypeFolder<TyCtxt<'tcx>>,

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for PointerCoercion

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for Predicate<'tcx>

Source§

fn try_fold_with<F>( self, folder: &mut F, ) -> Result<Predicate<'tcx>, <F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where F: FallibleTypeFolder<TyCtxt<'tcx>>,

Source§

fn fold_with<F>(self, folder: &mut F) -> Predicate<'tcx>
where F: TypeFolder<TyCtxt<'tcx>>,

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for Projection<'tcx>

Source§

fn try_fold_with<__F>( self, __folder: &mut __F, ) -> Result<Projection<'tcx>, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where __F: FallibleTypeFolder<TyCtxt<'tcx>>,

Source§

fn fold_with<__F>(self, __folder: &mut __F) -> Projection<'tcx>
where __F: TypeFolder<TyCtxt<'tcx>>,

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for ProjectionKind

Source§

fn try_fold_with<__F>( self, __folder: &mut __F, ) -> Result<ProjectionKind, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where __F: FallibleTypeFolder<TyCtxt<'tcx>>,

Source§

fn fold_with<__F>(self, __folder: &mut __F) -> ProjectionKind
where __F: TypeFolder<TyCtxt<'tcx>>,

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for Promoted

Source§

fn try_fold_with<F>( self, _: &mut F, ) -> Result<Promoted, <F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where F: FallibleTypeFolder<TyCtxt<'tcx>>,

Source§

fn fold_with<F>(self, _: &mut F) -> Promoted
where F: TypeFolder<TyCtxt<'tcx>>,

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for ProvisionalHiddenType<'tcx>

Source§

fn try_fold_with<__F>( self, __folder: &mut __F, ) -> Result<ProvisionalHiddenType<'tcx>, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where __F: FallibleTypeFolder<TyCtxt<'tcx>>,

Source§

fn fold_with<__F>(self, __folder: &mut __F) -> ProvisionalHiddenType<'tcx>
where __F: TypeFolder<TyCtxt<'tcx>>,

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for RangeEnd

Source§

fn try_fold_with<F>( self, _: &mut F, ) -> Result<RangeEnd, <F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where F: FallibleTypeFolder<TyCtxt<'tcx>>,

Source§

fn fold_with<F>(self, _: &mut F) -> RangeEnd
where F: TypeFolder<TyCtxt<'tcx>>,

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for RawPtrKind

Source§

fn try_fold_with<F>( self, _: &mut F, ) -> Result<RawPtrKind, <F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where F: FallibleTypeFolder<TyCtxt<'tcx>>,

Source§

fn fold_with<F>(self, _: &mut F) -> RawPtrKind
where F: TypeFolder<TyCtxt<'tcx>>,

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for Region<'tcx>

Source§

fn try_fold_with<F>( self, folder: &mut F, ) -> Result<Region<'tcx>, <F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where F: FallibleTypeFolder<TyCtxt<'tcx>>,

Source§

fn fold_with<F>(self, folder: &mut F) -> Region<'tcx>
where F: TypeFolder<TyCtxt<'tcx>>,

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for ReifyReason

Source§

fn try_fold_with<F>( self, _: &mut F, ) -> Result<ReifyReason, <F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where F: FallibleTypeFolder<TyCtxt<'tcx>>,

Source§

fn fold_with<F>(self, _: &mut F) -> ReifyReason
where F: TypeFolder<TyCtxt<'tcx>>,

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for ReturnConstraint

Source§

fn try_fold_with<__F>( self, __folder: &mut __F, ) -> Result<ReturnConstraint, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where __F: FallibleTypeFolder<TyCtxt<'tcx>>,

Source§

fn fold_with<__F>(self, __folder: &mut __F) -> ReturnConstraint
where __F: TypeFolder<TyCtxt<'tcx>>,

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for RuntimeChecks

Source§

fn try_fold_with<F>( self, _: &mut F, ) -> Result<RuntimeChecks, <F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where F: FallibleTypeFolder<TyCtxt<'tcx>>,

Source§

fn fold_with<F>(self, _: &mut F) -> RuntimeChecks
where F: TypeFolder<TyCtxt<'tcx>>,

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for Rvalue<'tcx>

Source§

fn try_fold_with<__F>( self, __folder: &mut __F, ) -> Result<Rvalue<'tcx>, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where __F: FallibleTypeFolder<TyCtxt<'tcx>>,

Source§

fn fold_with<__F>(self, __folder: &mut __F) -> Rvalue<'tcx>
where __F: TypeFolder<TyCtxt<'tcx>>,

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for ScalarInt

Source§

fn try_fold_with<F>( self, _: &mut F, ) -> Result<ScalarInt, <F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where F: FallibleTypeFolder<TyCtxt<'tcx>>,

Source§

fn fold_with<F>(self, _: &mut F) -> ScalarInt
where F: TypeFolder<TyCtxt<'tcx>>,

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for SourceInfo

Source§

fn try_fold_with<F>( self, _: &mut F, ) -> Result<SourceInfo, <F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where F: FallibleTypeFolder<TyCtxt<'tcx>>,

Source§

fn fold_with<F>(self, _: &mut F) -> SourceInfo
where F: TypeFolder<TyCtxt<'tcx>>,

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for SourceScope

Source§

fn try_fold_with<F>( self, _: &mut F, ) -> Result<SourceScope, <F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where F: FallibleTypeFolder<TyCtxt<'tcx>>,

Source§

fn fold_with<F>(self, _: &mut F) -> SourceScope
where F: TypeFolder<TyCtxt<'tcx>>,

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for SourceScopeData<'tcx>

Source§

fn try_fold_with<__F>( self, __folder: &mut __F, ) -> Result<SourceScopeData<'tcx>, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where __F: FallibleTypeFolder<TyCtxt<'tcx>>,

Source§

fn fold_with<__F>(self, __folder: &mut __F) -> SourceScopeData<'tcx>
where __F: TypeFolder<TyCtxt<'tcx>>,

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for SourceScopeLocalData

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for Span

Source§

fn try_fold_with<F>( self, _: &mut F, ) -> Result<Span, <F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where F: FallibleTypeFolder<TyCtxt<'tcx>>,

Source§

fn fold_with<F>(self, _: &mut F) -> Span
where F: TypeFolder<TyCtxt<'tcx>>,

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for Statement<'tcx>

Source§

fn try_fold_with<__F>( self, __folder: &mut __F, ) -> Result<Statement<'tcx>, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where __F: FallibleTypeFolder<TyCtxt<'tcx>>,

Source§

fn fold_with<__F>(self, __folder: &mut __F) -> Statement<'tcx>
where __F: TypeFolder<TyCtxt<'tcx>>,

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for StatementKind<'tcx>

Source§

fn try_fold_with<__F>( self, __folder: &mut __F, ) -> Result<StatementKind<'tcx>, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where __F: FallibleTypeFolder<TyCtxt<'tcx>>,

Source§

fn fold_with<__F>(self, __folder: &mut __F) -> StatementKind<'tcx>
where __F: TypeFolder<TyCtxt<'tcx>>,

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for StmtDebugInfo<'tcx>

Source§

fn try_fold_with<__F>( self, __folder: &mut __F, ) -> Result<StmtDebugInfo<'tcx>, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where __F: FallibleTypeFolder<TyCtxt<'tcx>>,

Source§

fn fold_with<__F>(self, __folder: &mut __F) -> StmtDebugInfo<'tcx>
where __F: TypeFolder<TyCtxt<'tcx>>,

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for StmtDebugInfos<'tcx>

Source§

fn try_fold_with<__F>( self, __folder: &mut __F, ) -> Result<StmtDebugInfos<'tcx>, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where __F: FallibleTypeFolder<TyCtxt<'tcx>>,

Source§

fn fold_with<__F>(self, __folder: &mut __F) -> StmtDebugInfos<'tcx>
where __F: TypeFolder<TyCtxt<'tcx>>,

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for SwitchTargets

Source§

fn try_fold_with<F>( self, _: &mut F, ) -> Result<SwitchTargets, <F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where F: FallibleTypeFolder<TyCtxt<'tcx>>,

Source§

fn fold_with<F>(self, _: &mut F) -> SwitchTargets
where F: TypeFolder<TyCtxt<'tcx>>,

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for Symbol

Source§

fn try_fold_with<F>( self, _: &mut F, ) -> Result<Symbol, <F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where F: FallibleTypeFolder<TyCtxt<'tcx>>,

Source§

fn fold_with<F>(self, _: &mut F) -> Symbol
where F: TypeFolder<TyCtxt<'tcx>>,

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for Term<'tcx>

Source§

fn try_fold_with<F>( self, folder: &mut F, ) -> Result<Term<'tcx>, <F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where F: FallibleTypeFolder<TyCtxt<'tcx>>,

Source§

fn fold_with<F>(self, folder: &mut F) -> Term<'tcx>
where F: TypeFolder<TyCtxt<'tcx>>,

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for Terminator<'tcx>

Source§

fn try_fold_with<__F>( self, __folder: &mut __F, ) -> Result<Terminator<'tcx>, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where __F: FallibleTypeFolder<TyCtxt<'tcx>>,

Source§

fn fold_with<__F>(self, __folder: &mut __F) -> Terminator<'tcx>
where __F: TypeFolder<TyCtxt<'tcx>>,

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for TerminatorKind<'tcx>

Source§

fn try_fold_with<__F>( self, __folder: &mut __F, ) -> Result<TerminatorKind<'tcx>, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where __F: FallibleTypeFolder<TyCtxt<'tcx>>,

Source§

fn fold_with<__F>(self, __folder: &mut __F) -> TerminatorKind<'tcx>
where __F: TypeFolder<TyCtxt<'tcx>>,

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for TraitPredPrintModifiersAndPath<'tcx>

Source§

fn try_fold_with<__F>( self, __folder: &mut __F, ) -> Result<TraitPredPrintModifiersAndPath<'tcx>, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where __F: FallibleTypeFolder<TyCtxt<'tcx>>,

Source§

fn fold_with<__F>( self, __folder: &mut __F, ) -> TraitPredPrintModifiersAndPath<'tcx>
where __F: TypeFolder<TyCtxt<'tcx>>,

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for TraitPredPrintWithBoundConstness<'tcx>

Source§

fn try_fold_with<__F>( self, __folder: &mut __F, ) -> Result<TraitPredPrintWithBoundConstness<'tcx>, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where __F: FallibleTypeFolder<TyCtxt<'tcx>>,

Source§

fn fold_with<__F>( self, __folder: &mut __F, ) -> TraitPredPrintWithBoundConstness<'tcx>
where __F: TypeFolder<TyCtxt<'tcx>>,

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for TraitRefPrintOnlyTraitName<'tcx>

Source§

fn try_fold_with<__F>( self, __folder: &mut __F, ) -> Result<TraitRefPrintOnlyTraitName<'tcx>, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where __F: FallibleTypeFolder<TyCtxt<'tcx>>,

Source§

fn fold_with<__F>(self, __folder: &mut __F) -> TraitRefPrintOnlyTraitName<'tcx>
where __F: TypeFolder<TyCtxt<'tcx>>,

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for TraitRefPrintOnlyTraitPath<'tcx>

Source§

fn try_fold_with<__F>( self, __folder: &mut __F, ) -> Result<TraitRefPrintOnlyTraitPath<'tcx>, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where __F: FallibleTypeFolder<TyCtxt<'tcx>>,

Source§

fn fold_with<__F>(self, __folder: &mut __F) -> TraitRefPrintOnlyTraitPath<'tcx>
where __F: TypeFolder<TyCtxt<'tcx>>,

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for TraitRefPrintSugared<'tcx>

Source§

fn try_fold_with<__F>( self, __folder: &mut __F, ) -> Result<TraitRefPrintSugared<'tcx>, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where __F: FallibleTypeFolder<TyCtxt<'tcx>>,

Source§

fn fold_with<__F>(self, __folder: &mut __F) -> TraitRefPrintSugared<'tcx>
where __F: TypeFolder<TyCtxt<'tcx>>,

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for Ty<'tcx>

Source§

fn try_fold_with<F>( self, folder: &mut F, ) -> Result<Ty<'tcx>, <F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where F: FallibleTypeFolder<TyCtxt<'tcx>>,

Source§

fn fold_with<F>(self, folder: &mut F) -> Ty<'tcx>
where F: TypeFolder<TyCtxt<'tcx>>,

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for TypingEnv<'tcx>

Source§

fn try_fold_with<__F>( self, __folder: &mut __F, ) -> Result<TypingEnv<'tcx>, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where __F: FallibleTypeFolder<TyCtxt<'tcx>>,

Source§

fn fold_with<__F>(self, __folder: &mut __F) -> TypingEnv<'tcx>
where __F: TypeFolder<TyCtxt<'tcx>>,

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for UnOp

Source§

fn try_fold_with<__F>( self, __folder: &mut __F, ) -> Result<UnOp, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where __F: FallibleTypeFolder<TyCtxt<'tcx>>,

Source§

fn fold_with<__F>(self, __folder: &mut __F) -> UnOp
where __F: TypeFolder<TyCtxt<'tcx>>,

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for UnevaluatedConst<'tcx>

Source§

fn try_fold_with<__F>( self, __folder: &mut __F, ) -> Result<UnevaluatedConst<'tcx>, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where __F: FallibleTypeFolder<TyCtxt<'tcx>>,

Source§

fn fold_with<__F>(self, __folder: &mut __F) -> UnevaluatedConst<'tcx>
where __F: TypeFolder<TyCtxt<'tcx>>,

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for UnwindAction

Source§

fn try_fold_with<__F>( self, __folder: &mut __F, ) -> Result<UnwindAction, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where __F: FallibleTypeFolder<TyCtxt<'tcx>>,

Source§

fn fold_with<__F>(self, __folder: &mut __F) -> UnwindAction
where __F: TypeFolder<TyCtxt<'tcx>>,

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for UnwindTerminateReason

Source§

fn try_fold_with<__F>( self, __folder: &mut __F, ) -> Result<UnwindTerminateReason, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where __F: FallibleTypeFolder<TyCtxt<'tcx>>,

Source§

fn fold_with<__F>(self, __folder: &mut __F) -> UnwindTerminateReason
where __F: TypeFolder<TyCtxt<'tcx>>,

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for UpvarArgs<'tcx>

Source§

fn try_fold_with<__F>( self, __folder: &mut __F, ) -> Result<UpvarArgs<'tcx>, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where __F: FallibleTypeFolder<TyCtxt<'tcx>>,

Source§

fn fold_with<__F>(self, __folder: &mut __F) -> UpvarArgs<'tcx>
where __F: TypeFolder<TyCtxt<'tcx>>,

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for UpvarCapture

Source§

fn try_fold_with<__F>( self, __folder: &mut __F, ) -> Result<UpvarCapture, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where __F: FallibleTypeFolder<TyCtxt<'tcx>>,

Source§

fn fold_with<__F>(self, __folder: &mut __F) -> UpvarCapture
where __F: TypeFolder<TyCtxt<'tcx>>,

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for UpvarId

Source§

fn try_fold_with<__F>( self, __folder: &mut __F, ) -> Result<UpvarId, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where __F: FallibleTypeFolder<TyCtxt<'tcx>>,

Source§

fn fold_with<__F>(self, __folder: &mut __F) -> UpvarId
where __F: TypeFolder<TyCtxt<'tcx>>,

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for UpvarPath

Source§

fn try_fold_with<__F>( self, __folder: &mut __F, ) -> Result<UpvarPath, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where __F: FallibleTypeFolder<TyCtxt<'tcx>>,

Source§

fn fold_with<__F>(self, __folder: &mut __F) -> UpvarPath
where __F: TypeFolder<TyCtxt<'tcx>>,

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for UserArgs<'tcx>

Source§

fn try_fold_with<__F>( self, __folder: &mut __F, ) -> Result<UserArgs<'tcx>, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where __F: FallibleTypeFolder<TyCtxt<'tcx>>,

Source§

fn fold_with<__F>(self, __folder: &mut __F) -> UserArgs<'tcx>
where __F: TypeFolder<TyCtxt<'tcx>>,

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for UserSelfTy<'tcx>

Source§

fn try_fold_with<__F>( self, __folder: &mut __F, ) -> Result<UserSelfTy<'tcx>, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where __F: FallibleTypeFolder<TyCtxt<'tcx>>,

Source§

fn fold_with<__F>(self, __folder: &mut __F) -> UserSelfTy<'tcx>
where __F: TypeFolder<TyCtxt<'tcx>>,

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for UserType<'tcx>

Source§

fn try_fold_with<__F>( self, __folder: &mut __F, ) -> Result<UserType<'tcx>, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where __F: FallibleTypeFolder<TyCtxt<'tcx>>,

Source§

fn fold_with<__F>(self, __folder: &mut __F) -> UserType<'tcx>
where __F: TypeFolder<TyCtxt<'tcx>>,

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for UserTypeAnnotationIndex

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for UserTypeKind<'tcx>

Source§

fn try_fold_with<__F>( self, __folder: &mut __F, ) -> Result<UserTypeKind<'tcx>, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where __F: FallibleTypeFolder<TyCtxt<'tcx>>,

Source§

fn fold_with<__F>(self, __folder: &mut __F) -> UserTypeKind<'tcx>
where __F: TypeFolder<TyCtxt<'tcx>>,

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for UserTypeProjection

Source§

fn try_fold_with<__F>( self, __folder: &mut __F, ) -> Result<UserTypeProjection, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where __F: FallibleTypeFolder<TyCtxt<'tcx>>,

Source§

fn fold_with<__F>(self, __folder: &mut __F) -> UserTypeProjection
where __F: TypeFolder<TyCtxt<'tcx>>,

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for UserTypeProjections

Source§

fn try_fold_with<__F>( self, __folder: &mut __F, ) -> Result<UserTypeProjections, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where __F: FallibleTypeFolder<TyCtxt<'tcx>>,

Source§

fn fold_with<__F>(self, __folder: &mut __F) -> UserTypeProjections
where __F: TypeFolder<TyCtxt<'tcx>>,

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for ValTree<'tcx>

Source§

fn try_fold_with<F>( self, folder: &mut F, ) -> Result<ValTree<'tcx>, <F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where F: FallibleTypeFolder<TyCtxt<'tcx>>,

Source§

fn fold_with<F>(self, folder: &mut F) -> ValTree<'tcx>
where F: TypeFolder<TyCtxt<'tcx>>,

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for Value<'tcx>

Source§

fn try_fold_with<__F>( self, __folder: &mut __F, ) -> Result<Value<'tcx>, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where __F: FallibleTypeFolder<TyCtxt<'tcx>>,

Source§

fn fold_with<__F>(self, __folder: &mut __F) -> Value<'tcx>
where __F: TypeFolder<TyCtxt<'tcx>>,

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for VarDebugInfo<'tcx>

Source§

fn try_fold_with<__F>( self, __folder: &mut __F, ) -> Result<VarDebugInfo<'tcx>, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where __F: FallibleTypeFolder<TyCtxt<'tcx>>,

Source§

fn fold_with<__F>(self, __folder: &mut __F) -> VarDebugInfo<'tcx>
where __F: TypeFolder<TyCtxt<'tcx>>,

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for VarDebugInfoContents<'tcx>

Source§

fn try_fold_with<__F>( self, __folder: &mut __F, ) -> Result<VarDebugInfoContents<'tcx>, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where __F: FallibleTypeFolder<TyCtxt<'tcx>>,

Source§

fn fold_with<__F>(self, __folder: &mut __F) -> VarDebugInfoContents<'tcx>
where __F: TypeFolder<TyCtxt<'tcx>>,

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for VarDebugInfoFragment<'tcx>

Source§

fn try_fold_with<__F>( self, __folder: &mut __F, ) -> Result<VarDebugInfoFragment<'tcx>, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where __F: FallibleTypeFolder<TyCtxt<'tcx>>,

Source§

fn fold_with<__F>(self, __folder: &mut __F) -> VarDebugInfoFragment<'tcx>
where __F: TypeFolder<TyCtxt<'tcx>>,

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for VariantIdx

Source§

fn try_fold_with<F>( self, _: &mut F, ) -> Result<VariantIdx, <F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where F: FallibleTypeFolder<TyCtxt<'tcx>>,

Source§

fn fold_with<F>(self, _: &mut F) -> VariantIdx
where F: TypeFolder<TyCtxt<'tcx>>,

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for WithRetag

Source§

fn try_fold_with<F>( self, _: &mut F, ) -> Result<WithRetag, <F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where F: FallibleTypeFolder<TyCtxt<'tcx>>,

Source§

fn fold_with<F>(self, _: &mut F) -> WithRetag
where F: TypeFolder<TyCtxt<'tcx>>,

Source§

impl<I, A, B, C> TypeFoldable<I> for (A, B, C)
where I: Interner, A: TypeFoldable<I>, B: TypeFoldable<I>, C: TypeFoldable<I>,

Source§

fn try_fold_with<F>( self, folder: &mut F, ) -> Result<(A, B, C), <F as FallibleTypeFolder<I>>::Error>
where F: FallibleTypeFolder<I>,

Source§

fn fold_with<F>(self, folder: &mut F) -> (A, B, C)
where F: TypeFolder<I>,

Source§

impl<I, T, E> TypeFoldable<I> for Result<T, E>
where I: Interner, T: TypeFoldable<I>, E: TypeFoldable<I>,

Source§

fn try_fold_with<F>( self, folder: &mut F, ) -> Result<Result<T, E>, <F as FallibleTypeFolder<I>>::Error>
where F: FallibleTypeFolder<I>,

Source§

fn fold_with<F>(self, folder: &mut F) -> Result<T, E>
where F: TypeFolder<I>,

Source§

impl<I, T, Ix> TypeFoldable<I> for IndexVec<Ix, T>
where I: Interner, T: TypeFoldable<I>, Ix: Idx,

Source§

fn try_fold_with<F>( self, folder: &mut F, ) -> Result<IndexVec<Ix, T>, <F as FallibleTypeFolder<I>>::Error>
where F: FallibleTypeFolder<I>,

Source§

fn fold_with<F>(self, folder: &mut F) -> IndexVec<Ix, T>
where F: TypeFolder<I>,

Source§

impl<I, T, U> TypeFoldable<I> for (T, U)
where I: Interner, T: TypeFoldable<I>, U: TypeFoldable<I>,

Source§

fn try_fold_with<F>( self, folder: &mut F, ) -> Result<(T, U), <F as FallibleTypeFolder<I>>::Error>
where F: FallibleTypeFolder<I>,

Source§

fn fold_with<F>(self, folder: &mut F) -> (T, U)
where F: TypeFolder<I>,

Source§

impl<I, T> TypeFoldable<I> for Arc<T>
where I: Interner, T: TypeFoldable<I>,

Source§

fn try_fold_with<F>( self, folder: &mut F, ) -> Result<Arc<T>, <F as FallibleTypeFolder<I>>::Error>
where F: FallibleTypeFolder<I>,

Source§

fn fold_with<F>(self, folder: &mut F) -> Arc<T>
where F: TypeFolder<I>,

Source§

impl<I, T> TypeFoldable<I> for Box<T>
where I: Interner, T: TypeFoldable<I>,

Source§

fn try_fold_with<F>( self, folder: &mut F, ) -> Result<Box<T>, <F as FallibleTypeFolder<I>>::Error>
where F: FallibleTypeFolder<I>,

Source§

fn fold_with<F>(self, folder: &mut F) -> Box<T>
where F: TypeFolder<I>,

Source§

impl<I, T> TypeFoldable<I> for Box<[T]>
where I: Interner, T: TypeFoldable<I>,

Source§

fn try_fold_with<F>( self, folder: &mut F, ) -> Result<Box<[T]>, <F as FallibleTypeFolder<I>>::Error>
where F: FallibleTypeFolder<I>,

Source§

fn fold_with<F>(self, folder: &mut F) -> Box<[T]>
where F: TypeFolder<I>,

Source§

impl<I, T> TypeFoldable<I> for Option<T>
where I: Interner, T: TypeFoldable<I>,

Source§

fn try_fold_with<F>( self, folder: &mut F, ) -> Result<Option<T>, <F as FallibleTypeFolder<I>>::Error>
where F: FallibleTypeFolder<I>,

Source§

fn fold_with<F>(self, folder: &mut F) -> Option<T>
where F: TypeFolder<I>,

Source§

impl<I, T> TypeFoldable<I> for ThinVec<T>
where I: Interner, T: TypeFoldable<I>,

Source§

fn try_fold_with<F>( self, folder: &mut F, ) -> Result<ThinVec<T>, <F as FallibleTypeFolder<I>>::Error>
where F: FallibleTypeFolder<I>,

Source§

fn fold_with<F>(self, folder: &mut F) -> ThinVec<T>
where F: TypeFolder<I>,

Source§

impl<I, T> TypeFoldable<I> for Vec<T>
where I: Interner, T: TypeFoldable<I>,

Source§

fn try_fold_with<F>( self, folder: &mut F, ) -> Result<Vec<T>, <F as FallibleTypeFolder<I>>::Error>
where F: FallibleTypeFolder<I>,

Source§

fn fold_with<F>(self, folder: &mut F) -> Vec<T>
where F: TypeFolder<I>,

Source§

impl<I> TypeFoldable<I> for ()
where I: Interner,

Source§

fn try_fold_with<F>( self, _: &mut F, ) -> Result<(), <F as FallibleTypeFolder<I>>::Error>
where F: FallibleTypeFolder<I>,

Source§

fn fold_with<F>(self, _: &mut F)
where F: TypeFolder<I>,

Source§

impl<I> TypeFoldable<I> for bool
where I: Interner,

Source§

fn try_fold_with<F>( self, _: &mut F, ) -> Result<bool, <F as FallibleTypeFolder<I>>::Error>
where F: FallibleTypeFolder<I>,

Source§

fn fold_with<F>(self, _: &mut F) -> bool
where F: TypeFolder<I>,

Source§

impl<I> TypeFoldable<I> for u16
where I: Interner,

Source§

fn try_fold_with<F>( self, _: &mut F, ) -> Result<u16, <F as FallibleTypeFolder<I>>::Error>
where F: FallibleTypeFolder<I>,

Source§

fn fold_with<F>(self, _: &mut F) -> u16
where F: TypeFolder<I>,

Source§

impl<I> TypeFoldable<I> for u32
where I: Interner,

Source§

fn try_fold_with<F>( self, _: &mut F, ) -> Result<u32, <F as FallibleTypeFolder<I>>::Error>
where F: FallibleTypeFolder<I>,

Source§

fn fold_with<F>(self, _: &mut F) -> u32
where F: TypeFolder<I>,

Source§

impl<I> TypeFoldable<I> for u64
where I: Interner,

Source§

fn try_fold_with<F>( self, _: &mut F, ) -> Result<u64, <F as FallibleTypeFolder<I>>::Error>
where F: FallibleTypeFolder<I>,

Source§

fn fold_with<F>(self, _: &mut F) -> u64
where F: TypeFolder<I>,

Source§

impl<I> TypeFoldable<I> for usize
where I: Interner,

Source§

fn try_fold_with<F>( self, _: &mut F, ) -> Result<usize, <F as FallibleTypeFolder<I>>::Error>
where F: FallibleTypeFolder<I>,

Source§

fn fold_with<F>(self, _: &mut F) -> usize
where F: TypeFolder<I>,

Implementors§

Source§

impl<'tcx, N> TypeFoldable<TyCtxt<'tcx>> for ImplSource<'tcx, N>
where N: TypeFoldable<TyCtxt<'tcx>>,

Source§

impl<'tcx, N> TypeFoldable<TyCtxt<'tcx>> for ImplSourceUserDefinedData<'tcx, N>
where N: TypeFoldable<TyCtxt<'tcx>>,

Source§

impl<'tcx, R> TypeFoldable<TyCtxt<'tcx>> for QueryResponse<'tcx, R>
where R: TypeFoldable<TyCtxt<'tcx>>,

Source§

impl<'tcx, T> TypeFoldable<TyCtxt<'tcx>> for DeeplyNormalize<T>
where T: TypeFoldable<TyCtxt<'tcx>>,

Source§

impl<'tcx, T> TypeFoldable<TyCtxt<'tcx>> for Normalize<T>
where T: TypeFoldable<TyCtxt<'tcx>>,

Source§

impl<'tcx, T> TypeFoldable<TyCtxt<'tcx>> for Obligation<'tcx, T>
where T: TypeFoldable<TyCtxt<'tcx>>,

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for AscribeUserType<'tcx>

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for BoundRegion<TyCtxt<'tcx>>

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for BoundTy<TyCtxt<'tcx>>

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for rustc_infer::infer::canonical::Certainty

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for DerivedCause<'tcx>

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for DerivedHostCause<'tcx>

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for DropckOutlives<'tcx>

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for DropckOutlivesResult<'tcx>

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for Eq<'tcx>

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for ExternalConstraints<'tcx>

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for GenericKind<'tcx>

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for ImplDerivedCause<'tcx>

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for ImplDerivedHostCause<'tcx>

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for ImpliedOutlivesBounds<'tcx>

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for IsConstable

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for MatchExpressionArmCause<'tcx>

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for MethodAutoderefSteps<'tcx>

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for NormalizationResult<'tcx>

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for ObligationCause<'tcx>

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for ObligationCauseCode<'tcx>

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for ObligationCauseCodeHandle<'tcx>

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for OutlivesBound<'tcx>

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for OverflowError

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for PatternOriginExpr

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for ProvePredicate<'tcx>

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for QueryRegionConstraint<'tcx>

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for QueryRegionConstraints<'tcx>

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for Subtype<'tcx>

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for ValuePairs<'tcx>

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for VerifyBound<'tcx>

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for VerifyIfEq<'tcx>

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for WellFormedLoc

Source§

impl<I, A> TypeFoldable<I> for OutlivesPredicate<I, A>
where I: Interner, A: TypeFoldable<I>, <I as Interner>::Region: TypeFoldable<I>,

Source§

impl<I, K> TypeFoldable<I> for Alias<I, K>
where I: Interner, K: TypeFoldable<I>, <I as Interner>::GenericArgs: TypeFoldable<I>,

Source§

impl<I, K> TypeFoldable<I> for NormalizesTo<I, K>
where I: Interner, K: TypeFoldable<I>, Alias<I, K>: TypeFoldable<I>, <I as Interner>::Term: TypeFoldable<I>,

Source§

impl<I, P> TypeFoldable<I> for Goal<I, P>
where I: Interner, P: TypeFoldable<I>, <I as Interner>::ParamEnv: TypeFoldable<I>,

Source§

impl<I, P> TypeFoldable<I> for QueryInput<I, P>

Source§

impl<I, T> !TypeFoldable<I> for EarlyBinder<I, T>
where I: Interner,

For early binders, you should first call instantiate before using any visitors.

Source§

impl<I, T> TypeFoldable<I> for Binder<I, T>
where I: Interner, T: TypeFoldable<I>,

Source§

impl<I, T> TypeFoldable<I> for Placeholder<I, T>
where I: Interner, T: TypeFoldable<I>,

Source§

impl<I, T> TypeFoldable<I> for State<I, T>

Source§

impl<I> TypeFoldable<I> for AccessedOpaques<I>

Source§

impl<I> TypeFoldable<I> for AliasBoundKind
where I: Interner,

Source§

impl<I> TypeFoldable<I> for AliasRelationDirection
where I: Interner,

Source§

impl<I> TypeFoldable<I> for AliasTermKind<I>

Source§

impl<I> TypeFoldable<I> for AliasTyKind<I>

Source§

impl<I> TypeFoldable<I> for BoundConstness
where I: Interner,

Source§

impl<I> TypeFoldable<I> for BoundVarIndexKind
where I: Interner,

Source§

impl<I> TypeFoldable<I> for BuiltinImplSource
where I: Interner,

Source§

impl<I> TypeFoldable<I> for CanonicalVarValues<I>
where I: Interner, <I as Interner>::GenericArgs: TypeFoldable<I>,

Source§

impl<I> TypeFoldable<I> for rustc_infer::traits::solve::Certainty
where I: Interner,

Source§

impl<I> TypeFoldable<I> for ClauseKind<I>

Source§

impl<I> TypeFoldable<I> for ClosureArgs<I>
where I: Interner, <I as Interner>::GenericArgs: TypeFoldable<I>,

Source§

impl<I> TypeFoldable<I> for CoercePredicate<I>
where I: Interner, <I as Interner>::Ty: TypeFoldable<I>,

Source§

impl<I> TypeFoldable<I> for CoroutineArgs<I>
where I: Interner, <I as Interner>::GenericArgs: TypeFoldable<I>,

Source§

impl<I> TypeFoldable<I> for CoroutineClosureArgs<I>
where I: Interner, <I as Interner>::GenericArgs: TypeFoldable<I>,

Source§

impl<I> TypeFoldable<I> for CoroutineClosureSignature<I>
where I: Interner, <I as Interner>::Ty: TypeFoldable<I>,

Source§

impl<I> TypeFoldable<I> for CoroutineWitnessTypes<I>

Source§

impl<I> TypeFoldable<I> for DebruijnIndex
where I: Interner,

Source§

impl<I> TypeFoldable<I> for ExistentialPredicate<I>

Source§

impl<I> TypeFoldable<I> for ExistentialProjection<I>

Source§

impl<I> TypeFoldable<I> for ExistentialTraitRef<I>

Source§

impl<I> TypeFoldable<I> for ExternalConstraintsData<I>

Source§

impl<I> TypeFoldable<I> for ExternalRegionConstraints<I>

Source§

impl<I> TypeFoldable<I> for FnHeader<I>
where I: Interner,

Source§

impl<I> TypeFoldable<I> for FnSig<I>
where I: Interner, <I as Interner>::Tys: TypeFoldable<I>,

Source§

impl<I> TypeFoldable<I> for FnSigKind<I>
where I: Interner,

Source§

impl<I> TypeFoldable<I> for FnSigTys<I>
where I: Interner, <I as Interner>::Tys: TypeFoldable<I>,

Source§

impl<I> TypeFoldable<I> for GenSig<I>
where I: Interner, <I as Interner>::Ty: TypeFoldable<I>,

Source§

impl<I> TypeFoldable<I> for GoalSource
where I: Interner,

Source§

impl<I> TypeFoldable<I> for HostEffectPredicate<I>
where I: Interner, TraitRef<I>: TypeFoldable<I>,

Source§

impl<I> TypeFoldable<I> for Mutability
where I: Interner,

Source§

impl<I> TypeFoldable<I> for NestedNormalizationGoals<I>
where I: Interner, Vec<(GoalSource, Goal<I, <I as Interner>::Predicate>)>: TypeFoldable<I>,

Source§

impl<I> TypeFoldable<I> for OpaqueTypeKey<I>

Source§

impl<I> TypeFoldable<I> for PatternKind<I>
where I: Interner, <I as Interner>::Const: TypeFoldable<I>, <I as Interner>::PatList: TypeFoldable<I>,

Source§

impl<I> TypeFoldable<I> for PredicateKind<I>

Source§

impl<I> TypeFoldable<I> for PredicatePolarity
where I: Interner,

Source§

impl<I> TypeFoldable<I> for ProbeKind<I>

Source§

impl<I> TypeFoldable<I> for ProjectionPredicate<I>

Source§

impl<I> TypeFoldable<I> for rustc_infer::infer::canonical::ir::region_constraint::RegionConstraint<I>
where I: Interner,

Source§

impl<I> TypeFoldable<I> for rustc_infer::infer::canonical::ir::RegionConstraint<I>

Source§

impl<I> TypeFoldable<I> for RegionEqPredicate<I>
where I: Interner, <I as Interner>::Region: TypeFoldable<I>,

Source§

impl<I> TypeFoldable<I> for RerunCondition<I>

Source§

impl<I> TypeFoldable<I> for Response<I>

Source§

impl<I> TypeFoldable<I> for SubtypePredicate<I>
where I: Interner, <I as Interner>::Ty: TypeFoldable<I>,

Source§

impl<I> TypeFoldable<I> for TraitPredicate<I>
where I: Interner, TraitRef<I>: TypeFoldable<I>,

Source§

impl<I> TypeFoldable<I> for TraitRef<I>

Source§

impl<I> TypeFoldable<I> for TypeAndMut<I>
where I: Interner, <I as Interner>::Ty: TypeFoldable<I>,

Source§

impl<I> TypeFoldable<I> for UnevaluatedConstKind<I>

Source§

impl<I> TypeFoldable<I> for UniverseIndex
where I: Interner,

Source§

impl<I> TypeFoldable<I> for UnsafeBinderInner<I>
where I: Interner, Binder<I, <I as Interner>::Ty>: TypeFoldable<I>,

Source§

impl<I> TypeFoldable<I> for ValTreeKind<I>
where I: Interner, <I as Interner>::ScalarInt: TypeFoldable<I>, <I as Interner>::Consts: TypeFoldable<I>,

Source§

impl<I> TypeFoldable<I> for Variance
where I: Interner,

Source§

impl<I> TypeFoldable<I> for VisibleForLeakCheck
where I: Interner,

Source§

impl<T, I> TypeFoldable<I> for ExpectedFound<T>
where I: Interner, T: TypeFoldable<I>,

Source§

impl<T, I> TypeFoldable<I> for SmallCopyList<T>