rustc_middle::ty::visit

Trait TypeVisitable

Source
pub trait TypeVisitable<I>: Debug + Clone
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 ByRef

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 Res

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

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 NodeId

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> TypeVisitable<I> for String
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 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, 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>,

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 rustc_middle::mir::consts::Const<'tcx>

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for BindingForm<'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 VarDebugInfoContents<'tcx>

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

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

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 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 rustc_middle::ty::closure::BorrowKind

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

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

Source§

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

Source§

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

Source§

impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for UserTypeKind<'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 Scope

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for CoroutineInfo<'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 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 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 ConstOperand<'tcx>

Source§

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

Source§

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

Source§

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

Source§

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

Source§

impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for Terminator<'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 IfExpressionCause<'tcx>

Source§

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

Source§

impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for InternedObligationCauseCode<'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 PatternOriginExpr

Source§

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

Source§

impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for UnifyReceiverContext<'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 AdtDef<'tcx>

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

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

Source§

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

Source§

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

Source§

impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for Predicate<'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 BoundRegion

Source§

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

Source§

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

Source§

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

Source§

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

Source§

impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for ImplHeader<'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 ParamEnv<'tcx>

Source§

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

Source§

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

Source§

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

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 ParamConst

Source§

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

Source§

impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for CanonicalUserTypeAnnotation<'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 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 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 AliasRelationDirection
where I: Interner,

Source§

impl<I> TypeVisitable<I> for AliasTyKind
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 FloatTy
where I: Interner,

Source§

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

Source§

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

Source§

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

Source§

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

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

Source§

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

Source§

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

Source§

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

Source§

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

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

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

Source§

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

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