Skip to main content

TypeVisitable

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 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".

Implementations on Foreign Types§

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<'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 DefId

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 FieldIdx

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 Ident

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 InlineAsmRegOrRegClass

Source§

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

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 LocalDefId

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 Span

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

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

Source§

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

Implementors§

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>>> TypeVisitable<TyCtxt<'tcx>> for &'tcx List<T>

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, V, T> TypeVisitable<TyCtxt<'tcx>> for ProjectionElem<V, T>
where T: TypeVisitable<TyCtxt<'tcx>>, V: TypeVisitable<TyCtxt<'tcx>>,

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

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 BinOp

Source§

impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for BindingForm<'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 rustc_middle::ty::BorrowKind

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

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 rustc_middle::ty::abstract_const::CastKind

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for ConstraintCategory<'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 DerefAdjustKind

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for GlobalId<'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 ImpliedOutlivesBounds<'tcx>

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for TerminatorKind<'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 Ty<'tcx>

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

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

Source§

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

Source§

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

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

Source§

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

Source§

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

Source§

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

Source§

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

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 Placeholder<I, T>
where I: Interner, T: TypeVisitable<I>,

Source§

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

Source§

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

Source§

impl<I> TypeVisitable<I> for AccessedOpaques<I>

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

impl<I> TypeVisitable<I> for CoercePredicate<I>
where I: Interner, <I as Interner>::Ty: TypeVisitable<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 CoroutineWitnessTypes<I>

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

impl<I> TypeVisitable<I> for ExternalRegionConstraints<I>

Source§

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

Source§

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

Source§

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

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

Source§

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

Source§

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

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 NormalizesTo<I>

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

impl<I> TypeVisitable<I> for rustc_middle::ty::region_constraint::RegionConstraint<I>
where I: Interner,

Source§

impl<I> TypeVisitable<I> for rustc_type_ir::predicate::RegionConstraint<I>

Source§

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

Source§

impl<I> TypeVisitable<I> for RerunCondition<I>

Source§

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

Source§

impl<I> TypeVisitable<I> for Response<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 TypeAndMut<I>
where I: Interner, <I as Interner>::Ty: TypeVisitable<I>,

Source§

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

Source§

impl<I> TypeVisitable<I> for rustc_type_ir::const_kind::UnevaluatedConst<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> TypeVisitable<I> for ValTreeKind<I>

Source§

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

Source§

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

Source§

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

Source§

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