rustc_infer::infer::canonical::ir::fold

Trait TypeFoldable

Source
pub trait TypeFoldable<I>: TypeVisitable<I>
where I: Interner,
{ // Required method fn try_fold_with<F>( self, folder: &mut F, ) -> Result<Self, <F as FallibleTypeFolder<I>>::Error> where F: FallibleTypeFolder<I>; // Provided method 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 TypeFolder.

Provided Methods§

Source

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

A convenient alternative to try_fold_with for use with infallible folders. Do not override this method, to ensure coherence with try_fold_with.

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 &'tcx [InlineAsmTemplatePiece]

Source§

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

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for &'tcx [Span]

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

fn fold_with<F>(self, _: &mut F) -> Res
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 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 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§

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§

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§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

fn try_fold_with<__F>( self, __folder: &mut __F, ) -> Result<Op, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where __F: FallibleTypeFolder<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 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§

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§

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§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

fn fold_with<F>(self, _: &mut F) -> Scalar
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§

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§

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§

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

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§

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§

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 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 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§

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§

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 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§

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

Source§

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

Source§

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

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§

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

Source§

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

Source§

fn fold_with<F>(self, _: &mut F) -> RetagKind
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§

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§

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§

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§

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§

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§

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§

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

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§

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§

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

Source§

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

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 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 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§

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§

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§

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

Source§

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

Source§

fn fold_with<F>(self, _: &mut F) -> ValTree<'tcx>
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§

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

Source§

fn try_fold_with<__F>( self, __folder: &mut __F, ) -> Result<ImplSubject<'tcx>, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where __F: FallibleTypeFolder<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§

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 PatternKind<'tcx>

Source§

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

Source§

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

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§

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§

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

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 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 Size

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

fn fold_with<F>(self, _: &mut F) -> NodeId
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 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§

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§

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

Source§

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

Source§

fn fold_with<F>(self, _: &mut F) -> Scope
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§

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§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

fn fold_with<F>(self, _: &mut F) -> AllocId
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§

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§

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§

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§

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§

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§

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§

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§

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§

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 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§

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

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§

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§

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§

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§

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§

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§

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§

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 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§

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§

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§

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§

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 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§

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§

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§

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§

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§

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§

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§

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§

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§

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§

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§

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§

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§

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§

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§

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§

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§

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§

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

Source§

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

Source§

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

Source§

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

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§

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§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

fn try_fold_with<__F>( self, __folder: &mut __F, ) -> Result<OpaqueHiddenType<'tcx>, <__F as FallibleTypeFolder<TyCtxt<'tcx>>>::Error>
where __F: FallibleTypeFolder<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§

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

Source§

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

Source§

impl<'tcx> TypeFoldable<TyCtxt<'tcx>> for Placeholder<BoundVar>

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§

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§

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§

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

Source§

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

Source§

fn fold_with<F>(self, _: &mut F) -> ParamConst
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 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§

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

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 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 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 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§

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 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, 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§

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§

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§

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§

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§

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§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

fn fold_with<F>(self, _: &mut F) -> Mutability
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 ()
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 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>,

Source§

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

Source§

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

Source§

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

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§

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§

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§

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§

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§

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§

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§

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§

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>,

Implementors§

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

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, O: TypeFoldable<TyCtxt<'tcx>>> TypeFoldable<TyCtxt<'tcx>> for Obligation<'tcx, O>

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

impl<I> TypeFoldable<I> for CanonicalVarKind<I>

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

impl<I> TypeFoldable<I> for TypingMode<I>

Source§

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

Source§

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

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 NoSolution
where I: Interner,

Source§

impl<I> TypeFoldable<I> for PredefinedOpaquesData<I>
where I: Interner, Vec<(OpaqueTypeKey<I>, <I as Interner>::Ty)>: TypeFoldable<I>,

Source§

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

Source§

impl<I> TypeFoldable<I> for AliasTerm<I>

Source§

impl<I> TypeFoldable<I> for AliasTy<I>

Source§

impl<I> TypeFoldable<I> for CanonicalVarInfo<I>

Source§

impl<I> TypeFoldable<I> for CanonicalVarValues<I>
where I: Interner, <I as Interner>::GenericArgs: TypeFoldable<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 DebruijnIndex
where I: Interner,

Source§

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

Source§

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

Source§

impl<I> TypeFoldable<I> for FnHeader<I>
where I: Interner, <I as Interner>::Safety: TypeFoldable<I>, <I as Interner>::Abi: TypeFoldable<I>,

Source§

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

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 HostEffectPredicate<I>
where I: Interner, TraitRef<I>: TypeFoldable<I>,

Source§

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

Source§

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

Source§

impl<I> TypeFoldable<I> for ProjectionPredicate<I>
where I: Interner, AliasTerm<I>: TypeFoldable<I>, <I as Interner>::Term: TypeFoldable<I>,

Source§

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

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 rustc_infer::infer::canonical::ir::UnevaluatedConst<I>

Source§

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

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, P> TypeFoldable<I> for Goal<I, P>
where I: Interner, <I as Interner>::ParamEnv: TypeFoldable<I>, P: 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 State<I, T>

Source§

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

Source§

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

Source§

impl<I, V> TypeFoldable<I> for Canonical<I, V>

Source§

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