Trait TypeVisitable

Source
pub trait TypeVisitable<I>: Debug
where I: Interner,
{ // Required method fn visit_with<V>(&self, visitor: &mut V) -> <V as TypeVisitor<I>>::Result where V: TypeVisitor<I>; }
Expand description

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

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

Required Methods§

Source

fn visit_with<V>(&self, visitor: &mut V) -> <V as TypeVisitor<I>>::Result
where V: TypeVisitor<I>,

The entry point for visiting. To visit a value t with a visitor v call: t.visit_with(v).

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

For types of interest (such as Ty), the implementation of this method that calls a visitor method specifically for that type (such as V::visit_ty). This is where control transfers from TypeVisitable to TypeVisitor.

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> TypeVisitable<TyCtxt<'tcx>> for InlineAsmTemplatePiece

Source§

fn visit_with<F: TypeVisitor<TyCtxt<'tcx>>>(&self, _: &mut F) -> F::Result

Source§

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

Source§

fn visit_with<F: TypeVisitor<TyCtxt<'tcx>>>(&self, _: &mut F) -> F::Result

Source§

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

Source§

fn visit_with<F: TypeVisitor<TyCtxt<'tcx>>>(&self, _: &mut F) -> F::Result

Source§

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

Source§

fn visit_with<F: TypeVisitor<TyCtxt<'tcx>>>(&self, _: &mut F) -> F::Result

Source§

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

Source§

fn visit_with<F: TypeVisitor<TyCtxt<'tcx>>>(&self, _: &mut F) -> F::Result

Source§

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

Source§

fn visit_with<F: TypeVisitor<TyCtxt<'tcx>>>(&self, _: &mut F) -> F::Result

Source§

impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for TyAndLayout<'tcx, Ty<'tcx>>

Source§

fn visit_with<V: TypeVisitor<TyCtxt<'tcx>>>(&self, visitor: &mut V) -> V::Result

Source§

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

Source§

fn visit_with<F: TypeVisitor<TyCtxt<'tcx>>>(&self, _: &mut F) -> F::Result

Source§

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

Source§

fn visit_with<F: TypeVisitor<TyCtxt<'tcx>>>(&self, _: &mut F) -> F::Result

Source§

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

Source§

fn visit_with<F: TypeVisitor<TyCtxt<'tcx>>>(&self, _: &mut F) -> F::Result

Source§

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

Source§

fn visit_with<F: TypeVisitor<TyCtxt<'tcx>>>(&self, _: &mut F) -> F::Result

Source§

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

Source§

fn visit_with<F: TypeVisitor<TyCtxt<'tcx>>>(&self, _: &mut F) -> F::Result

Source§

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

Source§

fn visit_with<F: TypeVisitor<TyCtxt<'tcx>>>(&self, _: &mut F) -> F::Result

Source§

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

Source§

fn visit_with<V: TypeVisitor<TyCtxt<'tcx>>>(&self, visitor: &mut V) -> V::Result

Source§

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

Source§

fn visit_with<F: TypeVisitor<TyCtxt<'tcx>>>(&self, _: &mut F) -> F::Result

Source§

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

Source§

fn visit_with<F: TypeVisitor<TyCtxt<'tcx>>>(&self, _: &mut F) -> F::Result

Source§

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

Source§

fn visit_with<V: TypeVisitor<TyCtxt<'tcx>>>(&self, visitor: &mut V) -> V::Result

Source§

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

Source§

fn visit_with<F>(&self, _: &mut F) -> <F as TypeVisitor<I>>::Result
where F: TypeVisitor<I>,

Source§

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

Source§

fn visit_with<F>(&self, _: &mut F) -> <F as TypeVisitor<I>>::Result
where F: TypeVisitor<I>,

Source§

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

Source§

fn visit_with<F>(&self, _: &mut F) -> <F as TypeVisitor<I>>::Result
where F: TypeVisitor<I>,

Source§

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

Source§

fn visit_with<F>(&self, _: &mut F) -> <F as TypeVisitor<I>>::Result
where F: TypeVisitor<I>,

Source§

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

Source§

fn visit_with<F>(&self, _: &mut F) -> <F as TypeVisitor<I>>::Result
where F: TypeVisitor<I>,

Source§

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

Source§

fn visit_with<F>(&self, _: &mut F) -> <F as TypeVisitor<I>>::Result
where F: TypeVisitor<I>,

Source§

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

Source§

fn visit_with<V>(&self, visitor: &mut V) -> <V as TypeVisitor<I>>::Result
where V: TypeVisitor<I>,

Source§

impl<I, T> TypeVisitable<I> for &[T]
where I: Interner, T: TypeVisitable<I>,

Source§

fn visit_with<V>(&self, visitor: &mut V) -> <V as TypeVisitor<I>>::Result
where V: TypeVisitor<I>,

Source§

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

Source§

fn visit_with<V>(&self, visitor: &mut V) -> <V as TypeVisitor<I>>::Result
where V: TypeVisitor<I>,

Source§

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

Source§

fn visit_with<V>(&self, visitor: &mut V) -> <V as TypeVisitor<I>>::Result
where V: TypeVisitor<I>,

Source§

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

Source§

fn visit_with<V>(&self, visitor: &mut V) -> <V as TypeVisitor<I>>::Result
where V: TypeVisitor<I>,

Source§

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

Source§

fn visit_with<V>(&self, visitor: &mut V) -> <V as TypeVisitor<I>>::Result
where V: TypeVisitor<I>,

Source§

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

Source§

fn visit_with<V>(&self, visitor: &mut V) -> <V as TypeVisitor<I>>::Result
where V: TypeVisitor<I>,

Source§

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

Source§

fn visit_with<V>(&self, visitor: &mut V) -> <V as TypeVisitor<I>>::Result
where V: TypeVisitor<I>,

Source§

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

Source§

fn visit_with<V>(&self, visitor: &mut V) -> <V as TypeVisitor<I>>::Result
where V: TypeVisitor<I>,

Source§

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

Source§

fn visit_with<V>(&self, visitor: &mut V) -> <V as TypeVisitor<I>>::Result
where V: TypeVisitor<I>,

Source§

impl<I, T, S> TypeVisitable<I> for IndexSet<T, S>
where I: Interner, T: TypeVisitable<I>,

Source§

fn visit_with<V>(&self, visitor: &mut V) -> <V as TypeVisitor<I>>::Result
where V: TypeVisitor<I>,

Source§

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

Source§

fn visit_with<V>(&self, visitor: &mut V) -> <V as TypeVisitor<I>>::Result
where V: TypeVisitor<I>,

Source§

impl<I, T, const N: usize> TypeVisitable<I> for SmallVec<[T; N]>
where I: Interner, T: TypeVisitable<I>,

Source§

fn visit_with<V>(&self, visitor: &mut V) -> <V as TypeVisitor<I>>::Result
where V: TypeVisitor<I>,

Implementors§

Source§

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

Source§

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

Source§

impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for rustc_middle::infer::canonical::Certainty

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for rustc_middle::mir::BorrowKind

Source§

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

Source§

impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for rustc_middle::mir::CastKind

Source§

impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for rustc_middle::mir::Const<'tcx>

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for PatKind<'tcx>

Source§

impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for PatRangeBoundary<'tcx>

Source§

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

Source§

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

Source§

impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for SelectionError<'tcx>

Source§

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

Source§

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

Source§

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

Source§

impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for SelectionCandidate<'tcx>

Source§

impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for rustc_middle::ty::abstract_const::CastKind

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for rustc_middle::ty::BorrowKind

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for PatternKind<'tcx>

Source§

impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for rustc_middle::hir::place::Place<'tcx>

Source§

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

Source§

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

Source§

impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for Cache

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for rustc_middle::mir::Place<'tcx>

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for rustc_middle::mir::UnevaluatedConst<'tcx>

Source§

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

Source§

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

Source§

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

Source§

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

Source§

impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for Ascription<'tcx>

Source§

impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for FieldPat<'tcx>

Source§

impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for Pat<'tcx>

Source§

impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for PatRange<'tcx>

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for SignatureMismatchData<'tcx>

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for AdtDef<'tcx>

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for rustc_middle::ty::Const<'tcx>

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for Clauses<'tcx>

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

impl<'tcx, T: TypeVisitable<TyCtxt<'tcx>>> TypeVisitable<TyCtxt<'tcx>> for &'tcx List<T>

Source§

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

Source§

impl<I> TypeVisitable<I> for TypeError<I>

Source§

impl<I> TypeVisitable<I> for TypingMode<I>

Source§

impl<I> TypeVisitable<I> for ExistentialPredicate<I>

Source§

impl<I> TypeVisitable<I> for ClauseKind<I>

Source§

impl<I> TypeVisitable<I> for PredicateKind<I>

Source§

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

Source§

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

Source§

impl<I> TypeVisitable<I> for rustc_middle::traits::solve::Certainty
where I: Interner,

Source§

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

Source§

impl<I> TypeVisitable<I> for ProbeKind<I>

Source§

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

Source§

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

Source§

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

Source§

impl<I> TypeVisitable<I> for CanonicalVarKind<I>

Source§

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

Source§

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

Source§

impl<I> TypeVisitable<I> for rustc_type_ir::const_kind::UnevaluatedConst<I>

Source§

impl<I> TypeVisitable<I> for OpaqueTypeKey<I>

Source§

impl<I> TypeVisitable<I> for AliasTerm<I>

Source§

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

Source§

impl<I> TypeVisitable<I> for ExistentialProjection<I>

Source§

impl<I> TypeVisitable<I> for ExistentialTraitRef<I>

Source§

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

Source§

impl<I> TypeVisitable<I> for NormalizesTo<I>

Source§

impl<I> TypeVisitable<I> for ProjectionPredicate<I>

Source§

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

Source§

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

Source§

impl<I> TypeVisitable<I> for TraitRef<I>

Source§

impl<I> TypeVisitable<I> for AliasTy<I>

Source§

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

Source§

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

Source§

impl<I> TypeVisitable<I> for ExternalConstraintsData<I>

Source§

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

Source§

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

Source§

impl<I> TypeVisitable<I> for Response<I>

Source§

impl<I> TypeVisitable<I> for CanonicalVarInfo<I>

Source§

impl<I> TypeVisitable<I> for CanonicalVarValues<I>

Source§

impl<I> TypeVisitable<I> for ClosureArgs<I>

Source§

impl<I> TypeVisitable<I> for CoroutineArgs<I>

Source§

impl<I> TypeVisitable<I> for CoroutineClosureArgs<I>

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

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

Source§

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

Source§

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

Source§

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

Source§

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

impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for PointerKind<'tcx>

impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for ExpectedSig<'tcx>

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

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

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

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

impl<'tcx, O: TypeVisitable<TyCtxt<'tcx>>> TypeVisitable<TyCtxt<'tcx>> for Obligation<'tcx, O>