pub trait TypeFoldable<I>: TypeVisitable<I> + Clonewhere
    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§
Sourcefn try_fold_with<F>(
    self,
    folder: &mut F,
) -> Result<Self, <F as FallibleTypeFolder<I>>::Error>where
    F: FallibleTypeFolder<I>,
 
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.
Sourcefn fold_with<F>(self, folder: &mut F) -> Selfwhere
    F: TypeFolder<I>,
 
fn fold_with<F>(self, folder: &mut F) -> Selfwhere
    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", so this trait is not object safe.
Implementations on Foreign Types§
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for InlineAsmTemplatePiece
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for InlineAsmTemplatePiece
fn try_fold_with<F>(
    self,
    _: &mut F,
) -> Result<InlineAsmTemplatePiece, <F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<F>(self, _: &mut F) -> InlineAsmTemplatePiecewhere
    F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for CoroutineKind
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for CoroutineKind
fn try_fold_with<F>(
    self,
    _: &mut F,
) -> Result<CoroutineKind, <F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<F>(self, _: &mut F) -> CoroutineKindwhere
    F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for MatchSource
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for MatchSource
fn try_fold_with<F>(
    self,
    _: &mut F,
) -> Result<MatchSource, <F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<F>(self, _: &mut F) -> MatchSourcewhere
    F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for RangeEnd
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for RangeEnd
fn try_fold_with<F>(
    self,
    _: &mut F,
) -> Result<RangeEnd, <F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<F>(self, _: &mut F) -> RangeEndwhere
    F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for PlaceBase
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for PlaceBase
fn try_fold_with<__F>(
    self,
    __folder: &mut __F,
) -> Result<PlaceBase, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    __F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<__F>(self, __folder: &mut __F) -> PlaceBasewhere
    __F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for ProjectionKind
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for ProjectionKind
fn try_fold_with<__F>(
    self,
    __folder: &mut __F,
) -> Result<ProjectionKind, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    __F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<__F>(self, __folder: &mut __F) -> ProjectionKindwhere
    __F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for Const<'tcx>
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for Const<'tcx>
fn try_fold_with<__F>(
    self,
    __folder: &mut __F,
) -> Result<Const<'tcx>, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    __F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<__F>(self, __folder: &mut __F) -> Const<'tcx>where
    __F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for ConstValue<'tcx>
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for ConstValue<'tcx>
fn try_fold_with<F>(
    self,
    _: &mut F,
) -> Result<ConstValue<'tcx>, <F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<F>(self, _: &mut F) -> ConstValue<'tcx>where
    F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for BindingForm<'tcx>
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for BindingForm<'tcx>
fn try_fold_with<F>(
    self,
    _: &mut F,
) -> Result<BindingForm<'tcx>, <F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<F>(self, _: &mut F) -> BindingForm<'tcx>where
    F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for LocalInfo<'tcx>
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for LocalInfo<'tcx>
fn try_fold_with<__F>(
    self,
    __folder: &mut __F,
) -> Result<LocalInfo<'tcx>, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    __F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<__F>(self, __folder: &mut __F) -> LocalInfo<'tcx>where
    __F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for MentionedItem<'tcx>
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for MentionedItem<'tcx>
fn try_fold_with<__F>(
    self,
    __folder: &mut __F,
) -> Result<MentionedItem<'tcx>, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    __F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<__F>(self, __folder: &mut __F) -> MentionedItem<'tcx>where
    __F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for VarDebugInfoContents<'tcx>
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for VarDebugInfoContents<'tcx>
fn try_fold_with<__F>(
    self,
    __folder: &mut __F,
) -> Result<VarDebugInfoContents<'tcx>, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    __F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<__F>(self, __folder: &mut __F) -> VarDebugInfoContents<'tcx>where
    __F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for AnnotationSource
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for AnnotationSource
fn try_fold_with<__F>(
    self,
    __folder: &mut __F,
) -> Result<AnnotationSource, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    __F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<__F>(self, __folder: &mut __F) -> AnnotationSourcewhere
    __F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for ConstraintCategory<'tcx>
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for ConstraintCategory<'tcx>
fn try_fold_with<__F>(
    self,
    __folder: &mut __F,
) -> Result<ConstraintCategory<'tcx>, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    __F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<__F>(self, __folder: &mut __F) -> ConstraintCategory<'tcx>where
    __F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for ReturnConstraint
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for ReturnConstraint
fn try_fold_with<__F>(
    self,
    __folder: &mut __F,
) -> Result<ReturnConstraint, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    __F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<__F>(self, __folder: &mut __F) -> ReturnConstraintwhere
    __F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for AggregateKind<'tcx>
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for AggregateKind<'tcx>
fn try_fold_with<__F>(
    self,
    __folder: &mut __F,
) -> Result<AggregateKind<'tcx>, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    __F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<__F>(self, __folder: &mut __F) -> AggregateKind<'tcx>where
    __F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for BackwardIncompatibleDropReason
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for BackwardIncompatibleDropReason
fn try_fold_with<__F>(
    self,
    __folder: &mut __F,
) -> Result<BackwardIncompatibleDropReason, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    __F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<__F>(self, __folder: &mut __F) -> BackwardIncompatibleDropReasonwhere
    __F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for BinOp
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for BinOp
fn try_fold_with<__F>(
    self,
    __folder: &mut __F,
) -> Result<BinOp, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    __F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<__F>(self, __folder: &mut __F) -> BinOpwhere
    __F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for BorrowKind
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for BorrowKind
fn try_fold_with<F>(
    self,
    _: &mut F,
) -> Result<BorrowKind, <F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<F>(self, _: &mut F) -> BorrowKindwhere
    F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for CallSource
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for CallSource
fn try_fold_with<__F>(
    self,
    __folder: &mut __F,
) -> Result<CallSource, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    __F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<__F>(self, __folder: &mut __F) -> CallSourcewhere
    __F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for CastKind
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for CastKind
fn try_fold_with<F>(
    self,
    _: &mut F,
) -> Result<CastKind, <F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<F>(self, _: &mut F) -> CastKindwhere
    F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for FakeReadCause
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for FakeReadCause
fn try_fold_with<F>(
    self,
    _: &mut F,
) -> Result<FakeReadCause, <F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<F>(self, _: &mut F) -> FakeReadCausewhere
    F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for InlineAsmMacro
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for InlineAsmMacro
fn try_fold_with<__F>(
    self,
    __folder: &mut __F,
) -> Result<InlineAsmMacro, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    __F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<__F>(self, __folder: &mut __F) -> InlineAsmMacrowhere
    __F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for InlineAsmOperand<'tcx>
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for InlineAsmOperand<'tcx>
fn try_fold_with<__F>(
    self,
    __folder: &mut __F,
) -> Result<InlineAsmOperand<'tcx>, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    __F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<__F>(self, __folder: &mut __F) -> InlineAsmOperand<'tcx>where
    __F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for MirPhase
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for MirPhase
fn try_fold_with<F>(
    self,
    _: &mut F,
) -> Result<MirPhase, <F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<F>(self, _: &mut F) -> MirPhasewhere
    F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for NonDivergingIntrinsic<'tcx>
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for NonDivergingIntrinsic<'tcx>
fn try_fold_with<__F>(
    self,
    __folder: &mut __F,
) -> Result<NonDivergingIntrinsic<'tcx>, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    __F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<__F>(self, __folder: &mut __F) -> NonDivergingIntrinsic<'tcx>where
    __F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for NullOp<'tcx>
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for NullOp<'tcx>
fn try_fold_with<F>(
    self,
    _: &mut F,
) -> Result<NullOp<'tcx>, <F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<F>(self, _: &mut F) -> NullOp<'tcx>where
    F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for Operand<'tcx>
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for Operand<'tcx>
fn try_fold_with<__F>(
    self,
    __folder: &mut __F,
) -> Result<Operand<'tcx>, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    __F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<__F>(self, __folder: &mut __F) -> Operand<'tcx>where
    __F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for RawPtrKind
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for RawPtrKind
fn try_fold_with<F>(
    self,
    _: &mut F,
) -> Result<RawPtrKind, <F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<F>(self, _: &mut F) -> RawPtrKindwhere
    F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for RetagKind
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for RetagKind
fn try_fold_with<F>(
    self,
    _: &mut F,
) -> Result<RetagKind, <F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<F>(self, _: &mut F) -> RetagKindwhere
    F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for Rvalue<'tcx>
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for Rvalue<'tcx>
fn try_fold_with<__F>(
    self,
    __folder: &mut __F,
) -> Result<Rvalue<'tcx>, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    __F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<__F>(self, __folder: &mut __F) -> Rvalue<'tcx>where
    __F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for StatementKind<'tcx>
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for StatementKind<'tcx>
fn try_fold_with<__F>(
    self,
    __folder: &mut __F,
) -> Result<StatementKind<'tcx>, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    __F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<__F>(self, __folder: &mut __F) -> StatementKind<'tcx>where
    __F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for TerminatorKind<'tcx>
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for TerminatorKind<'tcx>
fn try_fold_with<__F>(
    self,
    __folder: &mut __F,
) -> Result<TerminatorKind<'tcx>, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    __F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<__F>(self, __folder: &mut __F) -> TerminatorKind<'tcx>where
    __F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for UnOp
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for UnOp
fn try_fold_with<__F>(
    self,
    __folder: &mut __F,
) -> Result<UnOp, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    __F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<__F>(self, __folder: &mut __F) -> UnOpwhere
    __F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for UnwindAction
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for UnwindAction
fn try_fold_with<__F>(
    self,
    __folder: &mut __F,
) -> Result<UnwindAction, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    __F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<__F>(self, __folder: &mut __F) -> UnwindActionwhere
    __F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for UnwindTerminateReason
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for UnwindTerminateReason
fn try_fold_with<__F>(
    self,
    __folder: &mut __F,
) -> Result<UnwindTerminateReason, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    __F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<__F>(self, __folder: &mut __F) -> UnwindTerminateReasonwhere
    __F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for CastKind
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for CastKind
fn try_fold_with<__F>(
    self,
    __folder: &mut __F,
) -> Result<CastKind, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    __F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<__F>(self, __folder: &mut __F) -> CastKindwhere
    __F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for NotConstEvaluatable
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for NotConstEvaluatable
fn try_fold_with<F>(
    self,
    _: &mut F,
) -> Result<NotConstEvaluatable, <F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<F>(self, _: &mut F) -> NotConstEvaluatablewhere
    F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for Adjust
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for Adjust
fn try_fold_with<__F>(
    self,
    __folder: &mut __F,
) -> Result<Adjust, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    __F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<__F>(self, __folder: &mut __F) -> Adjustwhere
    __F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for AutoBorrow
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for AutoBorrow
fn try_fold_with<__F>(
    self,
    __folder: &mut __F,
) -> Result<AutoBorrow, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    __F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<__F>(self, __folder: &mut __F) -> AutoBorrowwhere
    __F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for AutoBorrowMutability
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for AutoBorrowMutability
fn try_fold_with<F>(
    self,
    _: &mut F,
) -> Result<AutoBorrowMutability, <F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<F>(self, _: &mut F) -> AutoBorrowMutabilitywhere
    F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for PatAdjust
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for PatAdjust
fn try_fold_with<__F>(
    self,
    __folder: &mut __F,
) -> Result<PatAdjust, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    __F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<__F>(self, __folder: &mut __F) -> PatAdjustwhere
    __F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for PointerCoercion
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for PointerCoercion
fn try_fold_with<F>(
    self,
    _: &mut F,
) -> Result<PointerCoercion, <F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<F>(self, _: &mut F) -> PointerCoercionwhere
    F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for AdtKind
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for AdtKind
fn try_fold_with<F>(
    self,
    _: &mut F,
) -> Result<AdtKind, <F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<F>(self, _: &mut F) -> AdtKindwhere
    F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for AssocKind
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for AssocKind
fn try_fold_with<F>(
    self,
    _: &mut F,
) -> Result<AssocKind, <F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<F>(self, _: &mut F) -> AssocKindwhere
    F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for BorrowKind
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for BorrowKind
fn try_fold_with<__F>(
    self,
    __folder: &mut __F,
) -> Result<BorrowKind, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    __F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<__F>(self, __folder: &mut __F) -> BorrowKindwhere
    __F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for UpvarCapture
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for UpvarCapture
fn try_fold_with<__F>(
    self,
    __folder: &mut __F,
) -> Result<UpvarCapture, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    __F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<__F>(self, __folder: &mut __F) -> UpvarCapturewhere
    __F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for ExprKind
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for ExprKind
fn try_fold_with<__F>(
    self,
    __folder: &mut __F,
) -> Result<ExprKind, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    __F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<__F>(self, __folder: &mut __F) -> ExprKindwhere
    __F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for Asyncness
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for Asyncness
fn try_fold_with<__F>(
    self,
    __folder: &mut __F,
) -> Result<Asyncness, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    __F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<__F>(self, __folder: &mut __F) -> Asyncnesswhere
    __F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for ImplSubject<'tcx>
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for ImplSubject<'tcx>
fn try_fold_with<__F>(
    self,
    __folder: &mut __F,
) -> Result<ImplSubject<'tcx>, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    __F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<__F>(self, __folder: &mut __F) -> ImplSubject<'tcx>where
    __F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for InstanceKind<'tcx>
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for InstanceKind<'tcx>
fn try_fold_with<__F>(
    self,
    __folder: &mut __F,
) -> Result<InstanceKind<'tcx>, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    __F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<__F>(self, __folder: &mut __F) -> InstanceKind<'tcx>where
    __F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for ReifyReason
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for ReifyReason
fn try_fold_with<F>(
    self,
    _: &mut F,
) -> Result<ReifyReason, <F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<F>(self, _: &mut F) -> ReifyReasonwhere
    F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for UpvarArgs<'tcx>
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for UpvarArgs<'tcx>
fn try_fold_with<__F>(
    self,
    __folder: &mut __F,
) -> Result<UpvarArgs<'tcx>, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    __F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<__F>(self, __folder: &mut __F) -> UpvarArgs<'tcx>where
    __F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for UserTypeKind<'tcx>
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for UserTypeKind<'tcx>
fn try_fold_with<__F>(
    self,
    __folder: &mut __F,
) -> Result<UserTypeKind<'tcx>, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    __F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<__F>(self, __folder: &mut __F) -> UserTypeKind<'tcx>where
    __F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for InlineAsmRegOrRegClass
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for InlineAsmRegOrRegClass
fn try_fold_with<F>(
    self,
    _: &mut F,
) -> Result<InlineAsmRegOrRegClass, <F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<F>(self, _: &mut F) -> InlineAsmRegOrRegClasswhere
    F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for FieldIdx
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for FieldIdx
fn try_fold_with<F>(
    self,
    _: &mut F,
) -> Result<FieldIdx, <F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<F>(self, _: &mut F) -> FieldIdxwhere
    F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for VariantIdx
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for VariantIdx
fn try_fold_with<F>(
    self,
    _: &mut F,
) -> Result<VariantIdx, <F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<F>(self, _: &mut F) -> VariantIdxwhere
    F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for InlineAsmOptions
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for InlineAsmOptions
fn try_fold_with<F>(
    self,
    _: &mut F,
) -> Result<InlineAsmOptions, <F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<F>(self, _: &mut F) -> InlineAsmOptionswhere
    F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for HirId
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for HirId
fn try_fold_with<F>(
    self,
    _: &mut F,
) -> Result<HirId, <F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<F>(self, _: &mut F) -> HirIdwhere
    F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for Place<'tcx>
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for Place<'tcx>
fn try_fold_with<__F>(
    self,
    __folder: &mut __F,
) -> Result<Place<'tcx>, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    __F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<__F>(self, __folder: &mut __F) -> Place<'tcx>where
    __F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for Projection<'tcx>
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for Projection<'tcx>
fn try_fold_with<__F>(
    self,
    __folder: &mut __F,
) -> Result<Projection<'tcx>, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    __F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<__F>(self, __folder: &mut __F) -> Projection<'tcx>where
    __F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for BasicBlocks<'tcx>
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for BasicBlocks<'tcx>
fn try_fold_with<__F>(
    self,
    __folder: &mut __F,
) -> Result<BasicBlocks<'tcx>, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    __F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<__F>(self, __folder: &mut __F) -> BasicBlocks<'tcx>where
    __F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for UnevaluatedConst<'tcx>
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for UnevaluatedConst<'tcx>
fn try_fold_with<__F>(
    self,
    __folder: &mut __F,
) -> Result<UnevaluatedConst<'tcx>, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    __F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<__F>(self, __folder: &mut __F) -> UnevaluatedConst<'tcx>where
    __F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for GlobalId<'tcx>
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for GlobalId<'tcx>
fn try_fold_with<__F>(
    self,
    __folder: &mut __F,
) -> Result<GlobalId<'tcx>, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    __F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<__F>(self, __folder: &mut __F) -> GlobalId<'tcx>where
    __F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for CoroutineLayout<'tcx>
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for CoroutineLayout<'tcx>
fn try_fold_with<__F>(
    self,
    __folder: &mut __F,
) -> Result<CoroutineLayout<'tcx>, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    __F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<__F>(self, __folder: &mut __F) -> CoroutineLayout<'tcx>where
    __F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for CoroutineSavedLocal
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for CoroutineSavedLocal
fn try_fold_with<F>(
    self,
    _: &mut F,
) -> Result<CoroutineSavedLocal, <F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<F>(self, _: &mut F) -> CoroutineSavedLocalwhere
    F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for CoroutineSavedTy<'tcx>
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for CoroutineSavedTy<'tcx>
fn try_fold_with<__F>(
    self,
    __folder: &mut __F,
) -> Result<CoroutineSavedTy<'tcx>, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    __F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<__F>(self, __folder: &mut __F) -> CoroutineSavedTy<'tcx>where
    __F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for PlaceTy<'tcx>
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for PlaceTy<'tcx>
fn try_fold_with<__F>(
    self,
    __folder: &mut __F,
) -> Result<PlaceTy<'tcx>, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    __F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<__F>(self, __folder: &mut __F) -> PlaceTy<'tcx>where
    __F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for Statement<'tcx>
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for Statement<'tcx>
fn try_fold_with<__F>(
    self,
    __folder: &mut __F,
) -> Result<Statement<'tcx>, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    __F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<__F>(self, __folder: &mut __F) -> Statement<'tcx>where
    __F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for BasicBlock
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for BasicBlock
fn try_fold_with<F>(
    self,
    _: &mut F,
) -> Result<BasicBlock, <F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<F>(self, _: &mut F) -> BasicBlockwhere
    F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for BasicBlockData<'tcx>
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for BasicBlockData<'tcx>
fn try_fold_with<__F>(
    self,
    __folder: &mut __F,
) -> Result<BasicBlockData<'tcx>, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    __F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<__F>(self, __folder: &mut __F) -> BasicBlockData<'tcx>where
    __F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for BlockTailInfo
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for BlockTailInfo
fn try_fold_with<F>(
    self,
    _: &mut F,
) -> Result<BlockTailInfo, <F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<F>(self, _: &mut F) -> BlockTailInfowhere
    F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for Body<'tcx>
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for Body<'tcx>
fn try_fold_with<__F>(
    self,
    __folder: &mut __F,
) -> Result<Body<'tcx>, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    __F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<__F>(self, __folder: &mut __F) -> Body<'tcx>where
    __F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for CoroutineInfo<'tcx>
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for CoroutineInfo<'tcx>
fn try_fold_with<__F>(
    self,
    __folder: &mut __F,
) -> Result<CoroutineInfo<'tcx>, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    __F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<__F>(self, __folder: &mut __F) -> CoroutineInfo<'tcx>where
    __F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for Local
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for Local
fn try_fold_with<F>(
    self,
    _: &mut F,
) -> Result<Local, <F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<F>(self, _: &mut F) -> Localwhere
    F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for LocalDecl<'tcx>
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for LocalDecl<'tcx>
fn try_fold_with<__F>(
    self,
    __folder: &mut __F,
) -> Result<LocalDecl<'tcx>, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    __F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<__F>(self, __folder: &mut __F) -> LocalDecl<'tcx>where
    __F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for MirSource<'tcx>
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for MirSource<'tcx>
fn try_fold_with<__F>(
    self,
    __folder: &mut __F,
) -> Result<MirSource<'tcx>, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    __F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<__F>(self, __folder: &mut __F) -> MirSource<'tcx>where
    __F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for Promoted
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for Promoted
fn try_fold_with<F>(
    self,
    _: &mut F,
) -> Result<Promoted, <F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<F>(self, _: &mut F) -> Promotedwhere
    F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for SourceInfo
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for SourceInfo
fn try_fold_with<F>(
    self,
    _: &mut F,
) -> Result<SourceInfo, <F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<F>(self, _: &mut F) -> SourceInfowhere
    F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for SourceScope
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for SourceScope
fn try_fold_with<F>(
    self,
    _: &mut F,
) -> Result<SourceScope, <F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<F>(self, _: &mut F) -> SourceScopewhere
    F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for SourceScopeData<'tcx>
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for SourceScopeData<'tcx>
fn try_fold_with<__F>(
    self,
    __folder: &mut __F,
) -> Result<SourceScopeData<'tcx>, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    __F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<__F>(self, __folder: &mut __F) -> SourceScopeData<'tcx>where
    __F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for SourceScopeLocalData
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for SourceScopeLocalData
fn try_fold_with<F>(
    self,
    _: &mut F,
) -> Result<SourceScopeLocalData, <F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<F>(self, _: &mut F) -> SourceScopeLocalDatawhere
    F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for UserTypeProjection
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for UserTypeProjection
fn try_fold_with<__F>(
    self,
    __folder: &mut __F,
) -> Result<UserTypeProjection, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    __F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<__F>(self, __folder: &mut __F) -> UserTypeProjectionwhere
    __F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for UserTypeProjections
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for UserTypeProjections
fn try_fold_with<__F>(
    self,
    __folder: &mut __F,
) -> Result<UserTypeProjections, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    __F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<__F>(self, __folder: &mut __F) -> UserTypeProjectionswhere
    __F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for VarDebugInfo<'tcx>
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for VarDebugInfo<'tcx>
fn try_fold_with<__F>(
    self,
    __folder: &mut __F,
) -> Result<VarDebugInfo<'tcx>, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    __F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<__F>(self, __folder: &mut __F) -> VarDebugInfo<'tcx>where
    __F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for VarDebugInfoFragment<'tcx>
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for VarDebugInfoFragment<'tcx>
fn try_fold_with<__F>(
    self,
    __folder: &mut __F,
) -> Result<VarDebugInfoFragment<'tcx>, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    __F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<__F>(self, __folder: &mut __F) -> VarDebugInfoFragment<'tcx>where
    __F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for ConstOperand<'tcx>
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for ConstOperand<'tcx>
fn try_fold_with<__F>(
    self,
    __folder: &mut __F,
) -> Result<ConstOperand<'tcx>, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    __F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<__F>(self, __folder: &mut __F) -> ConstOperand<'tcx>where
    __F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for CopyNonOverlapping<'tcx>
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for CopyNonOverlapping<'tcx>
fn try_fold_with<__F>(
    self,
    __folder: &mut __F,
) -> Result<CopyNonOverlapping<'tcx>, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    __F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<__F>(self, __folder: &mut __F) -> CopyNonOverlapping<'tcx>where
    __F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for Place<'tcx>
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for Place<'tcx>
fn try_fold_with<__F>(
    self,
    __folder: &mut __F,
) -> Result<Place<'tcx>, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    __F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<__F>(self, __folder: &mut __F) -> Place<'tcx>where
    __F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for SwitchTargets
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for SwitchTargets
fn try_fold_with<F>(
    self,
    _: &mut F,
) -> Result<SwitchTargets, <F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<F>(self, _: &mut F) -> SwitchTargetswhere
    F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for Terminator<'tcx>
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for Terminator<'tcx>
fn try_fold_with<__F>(
    self,
    __folder: &mut __F,
) -> Result<Terminator<'tcx>, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    __F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<__F>(self, __folder: &mut __F) -> Terminator<'tcx>where
    __F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for Adjustment<'tcx>
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for Adjustment<'tcx>
fn try_fold_with<__F>(
    self,
    __folder: &mut __F,
) -> Result<Adjustment<'tcx>, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    __F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<__F>(self, __folder: &mut __F) -> Adjustment<'tcx>where
    __F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for OverloadedDeref
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for OverloadedDeref
fn try_fold_with<__F>(
    self,
    __folder: &mut __F,
) -> Result<OverloadedDeref, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    __F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<__F>(self, __folder: &mut __F) -> OverloadedDerefwhere
    __F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for PatAdjustment<'tcx>
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for PatAdjustment<'tcx>
fn try_fold_with<__F>(
    self,
    __folder: &mut __F,
) -> Result<PatAdjustment<'tcx>, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    __F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<__F>(self, __folder: &mut __F) -> PatAdjustment<'tcx>where
    __F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for AssocItem
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for AssocItem
fn try_fold_with<F>(
    self,
    _: &mut F,
) -> Result<AssocItem, <F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<F>(self, _: &mut F) -> AssocItemwhere
    F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for CaptureInfo
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for CaptureInfo
fn try_fold_with<__F>(
    self,
    __folder: &mut __F,
) -> Result<CaptureInfo, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    __F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<__F>(self, __folder: &mut __F) -> CaptureInfowhere
    __F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for CapturedPlace<'tcx>
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for CapturedPlace<'tcx>
fn try_fold_with<__F>(
    self,
    __folder: &mut __F,
) -> Result<CapturedPlace<'tcx>, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    __F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<__F>(self, __folder: &mut __F) -> CapturedPlace<'tcx>where
    __F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for UpvarId
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for UpvarId
fn try_fold_with<__F>(
    self,
    __folder: &mut __F,
) -> Result<UpvarId, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    __F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<__F>(self, __folder: &mut __F) -> UpvarIdwhere
    __F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for UpvarPath
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for UpvarPath
fn try_fold_with<__F>(
    self,
    __folder: &mut __F,
) -> Result<UpvarPath, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    __F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<__F>(self, __folder: &mut __F) -> UpvarPathwhere
    __F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for Expr<'tcx>
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for Expr<'tcx>
fn try_fold_with<__F>(
    self,
    __folder: &mut __F,
) -> Result<Expr<'tcx>, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    __F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<__F>(self, __folder: &mut __F) -> Expr<'tcx>where
    __F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for Const<'tcx>
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for Const<'tcx>
fn try_fold_with<F>(
    self,
    folder: &mut F,
) -> Result<Const<'tcx>, <F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<F>(self, folder: &mut F) -> Const<'tcx>where
    F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for ValTree<'tcx>
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for ValTree<'tcx>
fn try_fold_with<F>(
    self,
    _: &mut F,
) -> Result<ValTree<'tcx>, <F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<F>(self, _: &mut F) -> ValTree<'tcx>where
    F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for Value<'tcx>
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for Value<'tcx>
fn try_fold_with<__F>(
    self,
    __folder: &mut __F,
) -> Result<Value<'tcx>, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    __F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<__F>(self, __folder: &mut __F) -> Value<'tcx>where
    __F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for GenericArg<'tcx>
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for GenericArg<'tcx>
fn try_fold_with<F>(
    self,
    folder: &mut F,
) -> Result<GenericArg<'tcx>, <F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<F>(self, folder: &mut F) -> GenericArg<'tcx>where
    F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for UserArgs<'tcx>
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for UserArgs<'tcx>
fn try_fold_with<__F>(
    self,
    __folder: &mut __F,
) -> Result<UserArgs<'tcx>, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    __F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<__F>(self, __folder: &mut __F) -> UserArgs<'tcx>where
    __F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for UserSelfTy<'tcx>
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for UserSelfTy<'tcx>
fn try_fold_with<__F>(
    self,
    __folder: &mut __F,
) -> Result<UserSelfTy<'tcx>, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    __F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<__F>(self, __folder: &mut __F) -> UserSelfTy<'tcx>where
    __F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for Instance<'tcx>
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for Instance<'tcx>
fn try_fold_with<__F>(
    self,
    __folder: &mut __F,
) -> Result<Instance<'tcx>, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    __F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<__F>(self, __folder: &mut __F) -> Instance<'tcx>where
    __F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for Pattern<'tcx>
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for Pattern<'tcx>
fn try_fold_with<F>(
    self,
    folder: &mut F,
) -> Result<Pattern<'tcx>, <F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<F>(self, folder: &mut F) -> Pattern<'tcx>where
    F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for Clause<'tcx>
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for Clause<'tcx>
fn try_fold_with<F>(
    self,
    folder: &mut F,
) -> Result<Clause<'tcx>, <F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<F>(self, folder: &mut F) -> Clause<'tcx>where
    F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for Predicate<'tcx>
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for Predicate<'tcx>
fn try_fold_with<F>(
    self,
    folder: &mut F,
) -> Result<Predicate<'tcx>, <F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<F>(self, folder: &mut F) -> Predicate<'tcx>where
    F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for TraitPredPrintModifiersAndPath<'tcx>
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for TraitPredPrintModifiersAndPath<'tcx>
fn try_fold_with<__F>(
    self,
    __folder: &mut __F,
) -> Result<TraitPredPrintModifiersAndPath<'tcx>, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    __F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<__F>(
    self,
    __folder: &mut __F,
) -> TraitPredPrintModifiersAndPath<'tcx>where
    __F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for TraitPredPrintWithBoundConstness<'tcx>
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for TraitPredPrintWithBoundConstness<'tcx>
fn try_fold_with<__F>(
    self,
    __folder: &mut __F,
) -> Result<TraitPredPrintWithBoundConstness<'tcx>, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    __F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<__F>(
    self,
    __folder: &mut __F,
) -> TraitPredPrintWithBoundConstness<'tcx>where
    __F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for TraitRefPrintOnlyTraitName<'tcx>
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for TraitRefPrintOnlyTraitName<'tcx>
fn try_fold_with<__F>(
    self,
    __folder: &mut __F,
) -> Result<TraitRefPrintOnlyTraitName<'tcx>, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    __F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<__F>(self, __folder: &mut __F) -> TraitRefPrintOnlyTraitName<'tcx>where
    __F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for TraitRefPrintOnlyTraitPath<'tcx>
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for TraitRefPrintOnlyTraitPath<'tcx>
fn try_fold_with<__F>(
    self,
    __folder: &mut __F,
) -> Result<TraitRefPrintOnlyTraitPath<'tcx>, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    __F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<__F>(self, __folder: &mut __F) -> TraitRefPrintOnlyTraitPath<'tcx>where
    __F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for TraitRefPrintSugared<'tcx>
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for TraitRefPrintSugared<'tcx>
fn try_fold_with<__F>(
    self,
    __folder: &mut __F,
) -> Result<TraitRefPrintSugared<'tcx>, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    __F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<__F>(self, __folder: &mut __F) -> TraitRefPrintSugared<'tcx>where
    __F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for BoundRegion
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for BoundRegion
fn try_fold_with<F>(
    self,
    _: &mut F,
) -> Result<BoundRegion, <F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<F>(self, _: &mut F) -> BoundRegionwhere
    F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for Region<'tcx>
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for Region<'tcx>
fn try_fold_with<F>(
    self,
    folder: &mut F,
) -> Result<Region<'tcx>, <F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<F>(self, folder: &mut F) -> Region<'tcx>where
    F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for ClosureSizeProfileData<'tcx>
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for ClosureSizeProfileData<'tcx>
fn try_fold_with<__F>(
    self,
    __folder: &mut __F,
) -> Result<ClosureSizeProfileData<'tcx>, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    __F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<__F>(self, __folder: &mut __F) -> ClosureSizeProfileData<'tcx>where
    __F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for ImplHeader<'tcx>
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for ImplHeader<'tcx>
fn try_fold_with<__F>(
    self,
    __folder: &mut __F,
) -> Result<ImplHeader<'tcx>, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    __F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<__F>(self, __folder: &mut __F) -> ImplHeader<'tcx>where
    __F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for InstantiatedPredicates<'tcx>
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for InstantiatedPredicates<'tcx>
fn try_fold_with<__F>(
    self,
    __folder: &mut __F,
) -> Result<InstantiatedPredicates<'tcx>, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    __F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<__F>(self, __folder: &mut __F) -> InstantiatedPredicates<'tcx>where
    __F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for OpaqueHiddenType<'tcx>
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for OpaqueHiddenType<'tcx>
fn try_fold_with<__F>(
    self,
    __folder: &mut __F,
) -> Result<OpaqueHiddenType<'tcx>, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    __F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<__F>(self, __folder: &mut __F) -> OpaqueHiddenType<'tcx>where
    __F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for ParamEnv<'tcx>
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for ParamEnv<'tcx>
fn try_fold_with<__F>(
    self,
    __folder: &mut __F,
) -> Result<ParamEnv<'tcx>, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    __F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<__F>(self, __folder: &mut __F) -> ParamEnv<'tcx>where
    __F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for Placeholder<BoundRegion>
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for Placeholder<BoundRegion>
fn try_fold_with<F>(
    self,
    _: &mut F,
) -> Result<Placeholder<BoundRegion>, <F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<F>(self, _: &mut F) -> Placeholder<BoundRegion>where
    F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for Placeholder<BoundTy>
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for Placeholder<BoundTy>
fn try_fold_with<F>(
    self,
    _: &mut F,
) -> Result<Placeholder<BoundTy>, <F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<F>(self, _: &mut F) -> Placeholder<BoundTy>where
    F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for Placeholder<BoundVar>
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for Placeholder<BoundVar>
fn try_fold_with<F>(
    self,
    _: &mut F,
) -> Result<Placeholder<BoundVar>, <F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<F>(self, _: &mut F) -> Placeholder<BoundVar>where
    F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for Term<'tcx>
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for Term<'tcx>
fn try_fold_with<F>(
    self,
    folder: &mut F,
) -> Result<Term<'tcx>, <F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<F>(self, folder: &mut F) -> Term<'tcx>where
    F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for Ty<'tcx>
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for Ty<'tcx>
fn try_fold_with<F>(
    self,
    folder: &mut F,
) -> Result<Ty<'tcx>, <F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<F>(self, folder: &mut F) -> Ty<'tcx>where
    F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for TypingEnv<'tcx>
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for TypingEnv<'tcx>
fn try_fold_with<__F>(
    self,
    __folder: &mut __F,
) -> Result<TypingEnv<'tcx>, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    __F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<__F>(self, __folder: &mut __F) -> TypingEnv<'tcx>where
    __F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for ParamConst
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for ParamConst
fn try_fold_with<F>(
    self,
    _: &mut F,
) -> Result<ParamConst, <F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<F>(self, _: &mut F) -> ParamConstwhere
    F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for ParamTy
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for ParamTy
fn try_fold_with<F>(
    self,
    _: &mut F,
) -> Result<ParamTy, <F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<F>(self, _: &mut F) -> ParamTywhere
    F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for CanonicalUserTypeAnnotation<'tcx>
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for CanonicalUserTypeAnnotation<'tcx>
fn try_fold_with<__F>(
    self,
    __folder: &mut __F,
) -> Result<CanonicalUserTypeAnnotation<'tcx>, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    __F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<__F>(self, __folder: &mut __F) -> CanonicalUserTypeAnnotation<'tcx>where
    __F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for UserType<'tcx>
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for UserType<'tcx>
fn try_fold_with<__F>(
    self,
    __folder: &mut __F,
) -> Result<UserType<'tcx>, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    __F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<__F>(self, __folder: &mut __F) -> UserType<'tcx>where
    __F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for UserTypeAnnotationIndex
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for UserTypeAnnotationIndex
fn try_fold_with<F>(
    self,
    _: &mut F,
) -> Result<UserTypeAnnotationIndex, <F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<F>(self, _: &mut F) -> UserTypeAnnotationIndexwhere
    F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for DefId
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for DefId
fn try_fold_with<F>(
    self,
    _: &mut F,
) -> Result<DefId, <F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<F>(self, _: &mut F) -> DefIdwhere
    F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for LocalDefId
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for LocalDefId
fn try_fold_with<F>(
    self,
    _: &mut F,
) -> Result<LocalDefId, <F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<F>(self, _: &mut F) -> LocalDefIdwhere
    F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for Span
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for Span
fn try_fold_with<F>(
    self,
    _: &mut F,
) -> Result<Span, <F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<F>(self, _: &mut F) -> Spanwhere
    F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for ErrorGuaranteed
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for ErrorGuaranteed
fn try_fold_with<F>(
    self,
    _folder: &mut F,
) -> Result<ErrorGuaranteed, <F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<F>(self, _folder: &mut F) -> ErrorGuaranteedwhere
    F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for Ident
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for Ident
fn try_fold_with<F>(
    self,
    _: &mut F,
) -> Result<Ident, <F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<F>(self, _: &mut F) -> Identwhere
    F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for Symbol
 
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for Symbol
fn try_fold_with<F>(
    self,
    _: &mut F,
) -> Result<Symbol, <F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<F>(self, _: &mut F) -> Symbolwhere
    F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<'tcx, O> TypeFoldable<TyCtxt<'tcx>> for AssertKind<O>where
    O: TypeFoldable<TyCtxt<'tcx>>,
 
impl<'tcx, O> TypeFoldable<TyCtxt<'tcx>> for AssertKind<O>where
    O: TypeFoldable<TyCtxt<'tcx>>,
fn try_fold_with<__F>(
    self,
    __folder: &mut __F,
) -> Result<AssertKind<O>, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    __F: FallibleTypeFolder<TyCtxt<'tcx>>,
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>>,
 
impl<'tcx, T> TypeFoldable<TyCtxt<'tcx>> for ClearCrossCrate<T>where
    T: TypeFoldable<TyCtxt<'tcx>>,
fn try_fold_with<__F>(
    self,
    __folder: &mut __F,
) -> Result<ClearCrossCrate<T>, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    __F: FallibleTypeFolder<TyCtxt<'tcx>>,
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>>,
 
impl<'tcx, T> TypeFoldable<TyCtxt<'tcx>> for ParamEnvAnd<'tcx, T>where
    T: TypeFoldable<TyCtxt<'tcx>>,
fn try_fold_with<__F>(
    self,
    __folder: &mut __F,
) -> Result<ParamEnvAnd<'tcx, T>, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    __F: FallibleTypeFolder<TyCtxt<'tcx>>,
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>>,
 
impl<'tcx, T> TypeFoldable<TyCtxt<'tcx>> for PseudoCanonicalInput<'tcx, T>where
    T: TypeFoldable<TyCtxt<'tcx>>,
fn try_fold_with<__F>(
    self,
    __folder: &mut __F,
) -> Result<PseudoCanonicalInput<'tcx, T>, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    __F: FallibleTypeFolder<TyCtxt<'tcx>>,
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>
 
impl<'tcx, T> TypeFoldable<TyCtxt<'tcx>> for Spanned<T>
fn try_fold_with<F>(
    self,
    folder: &mut F,
) -> Result<Spanned<T>, <F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    F: FallibleTypeFolder<TyCtxt<'tcx>>,
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>
 
impl<'tcx, V, T> TypeFoldable<TyCtxt<'tcx>> for ProjectionElem<V, T>
fn try_fold_with<__F>(
    self,
    __folder: &mut __F,
) -> Result<ProjectionElem<V, T>, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>where
    __F: FallibleTypeFolder<TyCtxt<'tcx>>,
fn fold_with<__F>(self, __folder: &mut __F) -> ProjectionElem<V, T>where
    __F: TypeFolder<TyCtxt<'tcx>>,
Source§impl<I> TypeFoldable<I> for boolwhere
    I: Interner,
 
impl<I> TypeFoldable<I> for boolwhere
    I: Interner,
fn try_fold_with<F>(
    self,
    _: &mut F,
) -> Result<bool, <F as FallibleTypeFolder<I>>::Error>where
    F: FallibleTypeFolder<I>,
fn fold_with<F>(self, _: &mut F) -> boolwhere
    F: TypeFolder<I>,
Source§impl<I> TypeFoldable<I> for u16where
    I: Interner,
 
impl<I> TypeFoldable<I> for u16where
    I: Interner,
fn try_fold_with<F>(
    self,
    _: &mut F,
) -> Result<u16, <F as FallibleTypeFolder<I>>::Error>where
    F: FallibleTypeFolder<I>,
fn fold_with<F>(self, _: &mut F) -> u16where
    F: TypeFolder<I>,
Source§impl<I> TypeFoldable<I> for u32where
    I: Interner,
 
impl<I> TypeFoldable<I> for u32where
    I: Interner,
fn try_fold_with<F>(
    self,
    _: &mut F,
) -> Result<u32, <F as FallibleTypeFolder<I>>::Error>where
    F: FallibleTypeFolder<I>,
fn fold_with<F>(self, _: &mut F) -> u32where
    F: TypeFolder<I>,
Source§impl<I> TypeFoldable<I> for u64where
    I: Interner,
 
impl<I> TypeFoldable<I> for u64where
    I: Interner,
fn try_fold_with<F>(
    self,
    _: &mut F,
) -> Result<u64, <F as FallibleTypeFolder<I>>::Error>where
    F: FallibleTypeFolder<I>,
fn fold_with<F>(self, _: &mut F) -> u64where
    F: TypeFolder<I>,
Source§impl<I> TypeFoldable<I> for ()where
    I: Interner,
 
impl<I> TypeFoldable<I> for ()where
    I: Interner,
fn try_fold_with<F>(
    self,
    _: &mut F,
) -> Result<(), <F as FallibleTypeFolder<I>>::Error>where
    F: FallibleTypeFolder<I>,
fn fold_with<F>(self, _: &mut F)where
    F: TypeFolder<I>,
Source§impl<I> TypeFoldable<I> for usizewhere
    I: Interner,
 
impl<I> TypeFoldable<I> for usizewhere
    I: Interner,
fn try_fold_with<F>(
    self,
    _: &mut F,
) -> Result<usize, <F as FallibleTypeFolder<I>>::Error>where
    F: FallibleTypeFolder<I>,
fn fold_with<F>(self, _: &mut F) -> usizewhere
    F: TypeFolder<I>,
Source§impl<I, A, B, C> TypeFoldable<I> for (A, B, C)
 
impl<I, A, B, C> TypeFoldable<I> for (A, B, C)
fn try_fold_with<F>(
    self,
    folder: &mut F,
) -> Result<(A, B, C), <F as FallibleTypeFolder<I>>::Error>where
    F: FallibleTypeFolder<I>,
fn fold_with<F>(self, folder: &mut F) -> (A, B, C)where
    F: TypeFolder<I>,
Source§impl<I, T> TypeFoldable<I> for Option<T>where
    I: Interner,
    T: TypeFoldable<I>,
 
impl<I, T> TypeFoldable<I> for Option<T>where
    I: Interner,
    T: TypeFoldable<I>,
fn try_fold_with<F>(
    self,
    folder: &mut F,
) -> Result<Option<T>, <F as FallibleTypeFolder<I>>::Error>where
    F: FallibleTypeFolder<I>,
fn fold_with<F>(self, folder: &mut F) -> Option<T>where
    F: TypeFolder<I>,
Source§impl<I, T> TypeFoldable<I> for Box<[T]>where
    I: Interner,
    T: TypeFoldable<I>,
 
impl<I, T> TypeFoldable<I> for Box<[T]>where
    I: Interner,
    T: TypeFoldable<I>,
fn try_fold_with<F>(
    self,
    folder: &mut F,
) -> Result<Box<[T]>, <F as FallibleTypeFolder<I>>::Error>where
    F: FallibleTypeFolder<I>,
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>,
 
impl<I, T> TypeFoldable<I> for Box<T>where
    I: Interner,
    T: TypeFoldable<I>,
fn try_fold_with<F>(
    self,
    folder: &mut F,
) -> Result<Box<T>, <F as FallibleTypeFolder<I>>::Error>where
    F: FallibleTypeFolder<I>,
fn fold_with<F>(self, folder: &mut F) -> Box<T>where
    F: TypeFolder<I>,
Source§impl<I, T> TypeFoldable<I> for Arc<T>where
    I: Interner,
    T: TypeFoldable<I>,
 
impl<I, T> TypeFoldable<I> for Arc<T>where
    I: Interner,
    T: TypeFoldable<I>,
fn try_fold_with<F>(
    self,
    folder: &mut F,
) -> Result<Arc<T>, <F as FallibleTypeFolder<I>>::Error>where
    F: FallibleTypeFolder<I>,
fn fold_with<F>(self, folder: &mut F) -> Arc<T>where
    F: TypeFolder<I>,
Source§impl<I, T> TypeFoldable<I> for Vec<T>where
    I: Interner,
    T: TypeFoldable<I>,
 
impl<I, T> TypeFoldable<I> for Vec<T>where
    I: Interner,
    T: TypeFoldable<I>,
fn try_fold_with<F>(
    self,
    folder: &mut F,
) -> Result<Vec<T>, <F as FallibleTypeFolder<I>>::Error>where
    F: FallibleTypeFolder<I>,
fn fold_with<F>(self, folder: &mut F) -> Vec<T>where
    F: TypeFolder<I>,
Source§impl<I, T> TypeFoldable<I> for ThinVec<T>where
    I: Interner,
    T: TypeFoldable<I>,
 
impl<I, T> TypeFoldable<I> for ThinVec<T>where
    I: Interner,
    T: TypeFoldable<I>,
fn try_fold_with<F>(
    self,
    folder: &mut F,
) -> Result<ThinVec<T>, <F as FallibleTypeFolder<I>>::Error>where
    F: FallibleTypeFolder<I>,
fn fold_with<F>(self, folder: &mut F) -> ThinVec<T>where
    F: TypeFolder<I>,
Source§impl<I, T, E> TypeFoldable<I> for Result<T, E>
 
impl<I, T, E> TypeFoldable<I> for Result<T, E>
fn try_fold_with<F>(
    self,
    folder: &mut F,
) -> Result<Result<T, E>, <F as FallibleTypeFolder<I>>::Error>where
    F: FallibleTypeFolder<I>,
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>
 
impl<I, T, Ix> TypeFoldable<I> for IndexVec<Ix, T>
fn try_fold_with<F>(
    self,
    folder: &mut F,
) -> Result<IndexVec<Ix, T>, <F as FallibleTypeFolder<I>>::Error>where
    F: FallibleTypeFolder<I>,
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)
 
impl<I, T, U> TypeFoldable<I> for (T, U)
fn try_fold_with<F>(
    self,
    folder: &mut F,
) -> Result<(T, U), <F as FallibleTypeFolder<I>>::Error>where
    F: FallibleTypeFolder<I>,
fn fold_with<F>(self, folder: &mut F) -> (T, U)where
    F: TypeFolder<I>,
Implementors§
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for IsConstable
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for ObligationCauseCode<'tcx>
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for OverflowError
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for WellFormedLoc
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for OutlivesBound<'tcx>
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for ValuePairs<'tcx>
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for GenericKind<'tcx>
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for VerifyBound<'tcx>
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for rustc_infer::infer::canonical::Certainty
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for InferConst
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for DropckOutlivesResult<'tcx>
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for NormalizationResult<'tcx>
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for AscribeUserType<'tcx>
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for DropckOutlives<'tcx>
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for Eq<'tcx>
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for ImpliedOutlivesBounds<'tcx>
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for ProvePredicate<'tcx>
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for Subtype<'tcx>
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for ExternalConstraints<'tcx>
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for PredefinedOpaques<'tcx>
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for DerivedCause<'tcx>
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for DerivedHostCause<'tcx>
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for ImplDerivedCause<'tcx>
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for ImplDerivedHostCause<'tcx>
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for MatchExpressionArmCause<'tcx>
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for ObligationCause<'tcx>
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for ObligationCauseCodeHandle<'tcx>
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for PatternOriginExpr
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for VerifyIfEq<'tcx>
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for QueryRegionConstraints<'tcx>
impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for BoundVar
impl<'tcx, N> TypeFoldable<TyCtxt<'tcx>> for ImplSource<'tcx, N>where
    N: TypeFoldable<TyCtxt<'tcx>>,
impl<'tcx, N> TypeFoldable<TyCtxt<'tcx>> for ImplSourceUserDefinedData<'tcx, N>where
    N: TypeFoldable<TyCtxt<'tcx>>,
impl<'tcx, R> TypeFoldable<TyCtxt<'tcx>> for QueryResponse<'tcx, R>where
    R: TypeFoldable<TyCtxt<'tcx>>,
impl<'tcx, T> TypeFoldable<TyCtxt<'tcx>> for DeeplyNormalize<T>where
    T: TypeFoldable<TyCtxt<'tcx>>,
impl<'tcx, T> TypeFoldable<TyCtxt<'tcx>> for Normalize<T>where
    T: TypeFoldable<TyCtxt<'tcx>>,
impl<'tcx, T> TypeFoldable<TyCtxt<'tcx>> for Obligation<'tcx, T>where
    T: TypeFoldable<TyCtxt<'tcx>>,
impl<I> TypeFoldable<I> for BuiltinImplSourcewhere
    I: Interner,
impl<I> TypeFoldable<I> for rustc_infer::traits::solve::Certaintywhere
    I: Interner,
impl<I> TypeFoldable<I> for GoalSourcewhere
    I: Interner,
impl<I> TypeFoldable<I> for ProbeKind<I>where
    I: Interner,
    Result<Canonical<I, Response<I>>, NoSolution>: TypeFoldable<I>,
    CandidateSource<I>: TypeFoldable<I>,
impl<I> TypeFoldable<I> for CanonicalTyVarKindwhere
    I: Interner,
impl<I> TypeFoldable<I> for AliasRelationDirectionwhere
    I: Interner,
impl<I> TypeFoldable<I> for BoundConstnesswhere
    I: Interner,
impl<I> TypeFoldable<I> for ClauseKind<I>where
    I: Interner,
    TraitPredicate<I>: TypeFoldable<I>,
    OutlivesPredicate<I, <I as Interner>::Region>: TypeFoldable<I>,
    OutlivesPredicate<I, <I as Interner>::Ty>: TypeFoldable<I>,
    ProjectionPredicate<I>: TypeFoldable<I>,
    <I as Interner>::Const: TypeFoldable<I>,
    <I as Interner>::Ty: TypeFoldable<I>,
    <I as Interner>::Term: TypeFoldable<I>,
    HostEffectPredicate<I>: TypeFoldable<I>,
impl<I> TypeFoldable<I> for ExistentialPredicate<I>where
    I: Interner,
    ExistentialTraitRef<I>: TypeFoldable<I>,
    ExistentialProjection<I>: TypeFoldable<I>,
    <I as Interner>::DefId: TypeFoldable<I>,
impl<I> TypeFoldable<I> for Mutabilitywhere
    I: Interner,
impl<I> TypeFoldable<I> for PatternKind<I>where
    I: Interner,
    <I as Interner>::Const: TypeFoldable<I>,
    <I as Interner>::PatList: TypeFoldable<I>,
impl<I> TypeFoldable<I> for PredicateKind<I>where
    I: Interner,
    ClauseKind<I>: TypeFoldable<I>,
    <I as Interner>::DefId: TypeFoldable<I>,
    SubtypePredicate<I>: TypeFoldable<I>,
    CoercePredicate<I>: TypeFoldable<I>,
    <I as Interner>::Const: TypeFoldable<I>,
    NormalizesTo<I>: TypeFoldable<I>,
    <I as Interner>::Term: TypeFoldable<I>,
impl<I> TypeFoldable<I> for PredicatePolaritywhere
    I: Interner,
impl<I> TypeFoldable<I> for TypingMode<I>
impl<I> TypeFoldable<I> for Variancewhere
    I: Interner,
impl<I> TypeFoldable<I> for ExternalConstraintsData<I>where
    I: Interner,
    Vec<OutlivesPredicate<I, <I as Interner>::GenericArg>>: TypeFoldable<I>,
    Vec<(OpaqueTypeKey<I>, <I as Interner>::Ty)>: TypeFoldable<I>,
    NestedNormalizationGoals<I>: TypeFoldable<I>,
impl<I> TypeFoldable<I> for NestedNormalizationGoals<I>
impl<I> TypeFoldable<I> for PredefinedOpaquesData<I>
impl<I> TypeFoldable<I> for Response<I>where
    I: Interner,
    CanonicalVarValues<I>: TypeFoldable<I>,
    <I as Interner>::ExternalConstraints: TypeFoldable<I>,
impl<I> TypeFoldable<I> for AliasTerm<I>where
    I: Interner,
    <I as Interner>::GenericArgs: TypeFoldable<I>,
    <I as Interner>::DefId: TypeFoldable<I>,
impl<I> TypeFoldable<I> for AliasTy<I>where
    I: Interner,
    <I as Interner>::GenericArgs: TypeFoldable<I>,
    <I as Interner>::DefId: TypeFoldable<I>,
impl<I> TypeFoldable<I> for CanonicalVarValues<I>
impl<I> TypeFoldable<I> for ClosureArgs<I>
impl<I> TypeFoldable<I> for CoercePredicate<I>
impl<I> TypeFoldable<I> for CoroutineArgs<I>
impl<I> TypeFoldable<I> for CoroutineClosureArgs<I>
impl<I> TypeFoldable<I> for CoroutineClosureSignature<I>
impl<I> TypeFoldable<I> for CoroutineWitnessTypes<I>where
    I: Interner,
    <I as Interner>::Tys: TypeFoldable<I>,
    <I as Interner>::RegionAssumptions: TypeFoldable<I>,
impl<I> TypeFoldable<I> for DebruijnIndexwhere
    I: Interner,
impl<I> TypeFoldable<I> for ExistentialProjection<I>where
    I: Interner,
    <I as Interner>::DefId: TypeFoldable<I>,
    <I as Interner>::GenericArgs: TypeFoldable<I>,
    <I as Interner>::Term: TypeFoldable<I>,
impl<I> TypeFoldable<I> for ExistentialTraitRef<I>where
    I: Interner,
    <I as Interner>::DefId: TypeFoldable<I>,
    <I as Interner>::GenericArgs: TypeFoldable<I>,
impl<I> TypeFoldable<I> for FnHeader<I>
impl<I> TypeFoldable<I> for FnSig<I>
impl<I> TypeFoldable<I> for FnSigTys<I>
impl<I> TypeFoldable<I> for GenSig<I>
impl<I> TypeFoldable<I> for HostEffectPredicate<I>
impl<I> TypeFoldable<I> for NormalizesTo<I>
impl<I> TypeFoldable<I> for OpaqueTypeKey<I>where
    I: Interner,
    <I as Interner>::LocalDefId: TypeFoldable<I>,
    <I as Interner>::GenericArgs: TypeFoldable<I>,
impl<I> TypeFoldable<I> for ProjectionPredicate<I>
impl<I> TypeFoldable<I> for SubtypePredicate<I>
impl<I> TypeFoldable<I> for TraitPredicate<I>
impl<I> TypeFoldable<I> for TraitRef<I>where
    I: Interner,
    <I as Interner>::DefId: TypeFoldable<I>,
    <I as Interner>::GenericArgs: TypeFoldable<I>,
impl<I> TypeFoldable<I> for TypeAndMut<I>
impl<I> TypeFoldable<I> for rustc_infer::infer::canonical::ir::UnevaluatedConst<I>where
    I: Interner,
    <I as Interner>::DefId: TypeFoldable<I>,
    <I as Interner>::GenericArgs: TypeFoldable<I>,
impl<I> TypeFoldable<I> for UniverseIndexwhere
    I: Interner,
impl<I> TypeFoldable<I> for UnsafeBinderInner<I>
impl<I, A> TypeFoldable<I> for OutlivesPredicate<I, A>
impl<I, P> TypeFoldable<I> for Goal<I, P>
impl<I, P> TypeFoldable<I> for QueryInput<I, P>where
    I: Interner,
    Goal<I, P>: TypeFoldable<I>,
    <I as Interner>::PredefinedOpaques: TypeFoldable<I>,
impl<I, T> !TypeFoldable<I> for EarlyBinder<I, T>where
    I: Interner,
For early binders, you should first call instantiate before using any visitors.