pub trait TypeVisitable<I>: Debug + Clonewhere
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§
sourcefn visit_with<V>(&self, visitor: &mut V) -> <V as TypeVisitor<I>>::Resultwhere
V: TypeVisitor<I>,
fn visit_with<V>(&self, visitor: &mut V) -> <V as TypeVisitor<I>>::Resultwhere
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
.
Object Safety§
This trait is not object safe.
Implementations on Foreign Types§
source§impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for ByRef
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for ByRef
fn visit_with<F: TypeVisitor<TyCtxt<'tcx>>>(&self, _: &mut F) -> F::Result
source§impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for InlineAsmTemplatePiece
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for InlineAsmTemplatePiece
fn visit_with<F: TypeVisitor<TyCtxt<'tcx>>>(&self, _: &mut F) -> F::Result
source§impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for Res
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for Res
fn visit_with<F: TypeVisitor<TyCtxt<'tcx>>>(&self, _: &mut F) -> F::Result
source§impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for CoroutineKind
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for CoroutineKind
fn visit_with<F: TypeVisitor<TyCtxt<'tcx>>>(&self, _: &mut F) -> F::Result
source§impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for MatchSource
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for MatchSource
fn visit_with<F: TypeVisitor<TyCtxt<'tcx>>>(&self, _: &mut F) -> F::Result
source§impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for Safety
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for Safety
fn visit_with<F: TypeVisitor<TyCtxt<'tcx>>>(&self, _: &mut F) -> F::Result
source§impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for InlineAsmRegOrRegClass
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for InlineAsmRegOrRegClass
fn visit_with<F: TypeVisitor<TyCtxt<'tcx>>>(&self, _: &mut F) -> F::Result
source§impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for Abi
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for Abi
fn visit_with<F: TypeVisitor<TyCtxt<'tcx>>>(&self, _: &mut F) -> F::Result
source§impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for Size
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for Size
fn visit_with<F: TypeVisitor<TyCtxt<'tcx>>>(&self, _: &mut F) -> F::Result
source§impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for InlineAsmOptions
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for InlineAsmOptions
fn visit_with<F: TypeVisitor<TyCtxt<'tcx>>>(&self, _: &mut F) -> F::Result
source§impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for NodeId
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for NodeId
fn visit_with<F: TypeVisitor<TyCtxt<'tcx>>>(&self, _: &mut F) -> F::Result
source§impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for HirId
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for HirId
fn visit_with<F: TypeVisitor<TyCtxt<'tcx>>>(&self, _: &mut F) -> F::Result
source§impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for DefId
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for DefId
fn visit_with<F: TypeVisitor<TyCtxt<'tcx>>>(&self, _: &mut F) -> F::Result
source§impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for LocalDefId
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for LocalDefId
fn visit_with<F: TypeVisitor<TyCtxt<'tcx>>>(&self, _: &mut F) -> F::Result
source§impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for Span
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for Span
fn visit_with<F: TypeVisitor<TyCtxt<'tcx>>>(&self, _: &mut F) -> F::Result
source§impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for ErrorGuaranteed
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for ErrorGuaranteed
fn visit_with<V: TypeVisitor<TyCtxt<'tcx>>>(&self, visitor: &mut V) -> V::Result
source§impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for Ident
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for Ident
fn visit_with<F: TypeVisitor<TyCtxt<'tcx>>>(&self, _: &mut F) -> F::Result
source§impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for Symbol
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for Symbol
fn visit_with<F: TypeVisitor<TyCtxt<'tcx>>>(&self, _: &mut F) -> F::Result
source§impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for FieldIdx
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for FieldIdx
fn visit_with<F: TypeVisitor<TyCtxt<'tcx>>>(&self, _: &mut F) -> F::Result
source§impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for TyAndLayout<'tcx, Ty<'tcx>>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for TyAndLayout<'tcx, Ty<'tcx>>
fn visit_with<V: TypeVisitor<TyCtxt<'tcx>>>(&self, visitor: &mut V) -> V::Result
source§impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for VariantIdx
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for VariantIdx
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>
impl<'tcx, T: TypeVisitable<TyCtxt<'tcx>> + Debug + Clone> TypeVisitable<TyCtxt<'tcx>> for Spanned<T>
fn visit_with<V: TypeVisitor<TyCtxt<'tcx>>>(&self, visitor: &mut V) -> V::Result
source§impl<I> TypeVisitable<I> for boolwhere
I: Interner,
impl<I> TypeVisitable<I> for boolwhere
I: Interner,
fn visit_with<F>(&self, _: &mut F) -> <F as TypeVisitor<I>>::Resultwhere
F: TypeVisitor<I>,
source§impl<I> TypeVisitable<I> for u16where
I: Interner,
impl<I> TypeVisitable<I> for u16where
I: Interner,
fn visit_with<F>(&self, _: &mut F) -> <F as TypeVisitor<I>>::Resultwhere
F: TypeVisitor<I>,
source§impl<I> TypeVisitable<I> for u32where
I: Interner,
impl<I> TypeVisitable<I> for u32where
I: Interner,
fn visit_with<F>(&self, _: &mut F) -> <F as TypeVisitor<I>>::Resultwhere
F: TypeVisitor<I>,
source§impl<I> TypeVisitable<I> for u64where
I: Interner,
impl<I> TypeVisitable<I> for u64where
I: Interner,
fn visit_with<F>(&self, _: &mut F) -> <F as TypeVisitor<I>>::Resultwhere
F: TypeVisitor<I>,
source§impl<I> TypeVisitable<I> for ()where
I: Interner,
impl<I> TypeVisitable<I> for ()where
I: Interner,
fn visit_with<F>(&self, _: &mut F) -> <F as TypeVisitor<I>>::Resultwhere
F: TypeVisitor<I>,
source§impl<I> TypeVisitable<I> for usizewhere
I: Interner,
impl<I> TypeVisitable<I> for usizewhere
I: Interner,
fn visit_with<F>(&self, _: &mut F) -> <F as TypeVisitor<I>>::Resultwhere
F: TypeVisitor<I>,
source§impl<I> TypeVisitable<I> for Stringwhere
I: Interner,
impl<I> TypeVisitable<I> for Stringwhere
I: Interner,
fn visit_with<F>(&self, _: &mut F) -> <F as TypeVisitor<I>>::Resultwhere
F: TypeVisitor<I>,
source§impl<I, A, B, C> TypeVisitable<I> for (A, B, C)
impl<I, A, B, C> TypeVisitable<I> for (A, B, C)
fn visit_with<V>(&self, visitor: &mut V) -> <V as TypeVisitor<I>>::Resultwhere
V: TypeVisitor<I>,
source§impl<I, T> TypeVisitable<I> for &[T]where
I: Interner,
T: TypeVisitable<I>,
impl<I, T> TypeVisitable<I> for &[T]where
I: Interner,
T: TypeVisitable<I>,
fn visit_with<V>(&self, visitor: &mut V) -> <V as TypeVisitor<I>>::Resultwhere
V: TypeVisitor<I>,
source§impl<I, T> TypeVisitable<I> for Option<T>where
I: Interner,
T: TypeVisitable<I>,
impl<I, T> TypeVisitable<I> for Option<T>where
I: Interner,
T: TypeVisitable<I>,
fn visit_with<V>(&self, visitor: &mut V) -> <V as TypeVisitor<I>>::Resultwhere
V: TypeVisitor<I>,
source§impl<I, T> TypeVisitable<I> for Box<[T]>where
I: Interner,
T: TypeVisitable<I>,
impl<I, T> TypeVisitable<I> for Box<[T]>where
I: Interner,
T: TypeVisitable<I>,
fn visit_with<V>(&self, visitor: &mut V) -> <V as TypeVisitor<I>>::Resultwhere
V: TypeVisitor<I>,
source§impl<I, T> TypeVisitable<I> for Box<T>where
I: Interner,
T: TypeVisitable<I>,
impl<I, T> TypeVisitable<I> for Box<T>where
I: Interner,
T: TypeVisitable<I>,
fn visit_with<V>(&self, visitor: &mut V) -> <V as TypeVisitor<I>>::Resultwhere
V: TypeVisitor<I>,
source§impl<I, T> TypeVisitable<I> for Vec<T>where
I: Interner,
T: TypeVisitable<I>,
impl<I, T> TypeVisitable<I> for Vec<T>where
I: Interner,
T: TypeVisitable<I>,
fn visit_with<V>(&self, visitor: &mut V) -> <V as TypeVisitor<I>>::Resultwhere
V: TypeVisitor<I>,
source§impl<I, T, E> TypeVisitable<I> for Result<T, E>
impl<I, T, E> TypeVisitable<I> for Result<T, E>
fn visit_with<V>(&self, visitor: &mut V) -> <V as TypeVisitor<I>>::Resultwhere
V: TypeVisitor<I>,
source§impl<I, T, Ix> TypeVisitable<I> for IndexVec<Ix, T>
impl<I, T, Ix> TypeVisitable<I> for IndexVec<Ix, T>
fn visit_with<V>(&self, visitor: &mut V) -> <V as TypeVisitor<I>>::Resultwhere
V: TypeVisitor<I>,
source§impl<I, T, U> TypeVisitable<I> for (T, U)
impl<I, T, U> TypeVisitable<I> for (T, U)
fn visit_with<V>(&self, visitor: &mut V) -> <V as TypeVisitor<I>>::Resultwhere
V: TypeVisitor<I>,
Implementors§
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for PlaceBase
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for ProjectionKind
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for rustc_middle::infer::canonical::Certainty
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for rustc_middle::mir::consts::Const<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for ConstValue<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for CovTerm
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for CoverageKind
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for MappingKind
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for Op
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for BindingForm<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for LocalInfo<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for MentionedItem<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for VarDebugInfoContents<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for ErrorHandled
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for Scalar
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for ConstraintCategory<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for ReturnConstraint
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for AggregateKind<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for BinOp
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for rustc_middle::mir::syntax::BorrowKind
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for CallSource
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for rustc_middle::mir::syntax::CastKind
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for FakeReadCause
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for InlineAsmMacro
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for InlineAsmOperand<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for MirPhase
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for NonDivergingIntrinsic<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for NullOp<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for Operand<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for RetagKind
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for Rvalue<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for StatementKind<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for TerminatorKind<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for UnOp
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for UnwindAction
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for UnwindTerminateReason
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for PatKind<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for PatRangeBoundary<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for IsConstable
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for ObligationCauseCode<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for SelectionError<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for WellFormedLoc
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for OutlivesBound<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for OverflowError
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for SelectionCandidate<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for rustc_middle::ty::abstract_const::CastKind
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for NotConstEvaluatable
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for Adjust<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for AutoBorrow<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for AutoBorrowMutability
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for PointerCoercion
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for AdtKind
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for AssocKind
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for rustc_middle::ty::closure::BorrowKind
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for UpvarCapture
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for ExprKind
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for ValTree<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for Asyncness
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for ClosureKind
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for ImplSubject<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for InferConst
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for InstanceKind<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for ReifyReason
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for PatternKind<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for BoundRegionKind
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for Reveal
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for UpvarArgs<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for UserType<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for rustc_middle::hir::place::Place<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for Projection<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for QueryRegionConstraints<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for MemberConstraint<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for Scope
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for BasicBlocks<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for Cache
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for rustc_middle::mir::consts::UnevaluatedConst<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for BlockMarkerId
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for BranchSpan
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for ConditionId
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for ConditionInfo
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for CounterId
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for CoverageInfoHi
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for DecisionInfo
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for Expression
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for ExpressionId
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for FunctionCoverageInfo
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for MCDCBranchSpan
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for MCDCDecisionSpan
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for Mapping
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for SourceRegion
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for CtfeProvenance
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for AllocId
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for GlobalId<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for CoroutineLayout<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for CoroutineSavedLocal
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for CoroutineSavedTy<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for Statement<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for BasicBlock
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for BasicBlockData<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for BlockTailInfo
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for Body<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for CoroutineInfo<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for Local
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for LocalDecl<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for MirSource<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for Promoted
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for SourceInfo
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for SourceScope
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for SourceScopeData<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for SourceScopeLocalData
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for UserTypeProjection
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for UserTypeProjections
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for VarDebugInfo<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for VarDebugInfoFragment<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for ConstOperand<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for CopyNonOverlapping<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for rustc_middle::mir::syntax::Place<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for SwitchTargets
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for PlaceTy<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for Terminator<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for Ascription<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for FieldPat<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for Pat<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for PatRange<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for DropckOutlivesResult<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for NormalizationResult<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for AscribeUserType<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for Eq<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for ProvePredicate<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for Subtype<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for ExternalConstraints<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for PredefinedOpaques<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for DerivedCause<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for IfExpressionCause<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for ImplDerivedCause<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for InternedObligationCauseCode<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for MatchExpressionArmCause<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for ObligationCause<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for SignatureMismatchData<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for UnifyReceiverContext<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for Adjustment<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for OverloadedDeref<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for AdtDef<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for AssocItem
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for CaptureInfo
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for CapturedPlace<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for UpvarId
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for UpvarPath
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for Expr<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for rustc_middle::ty::consts::Const<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for GenericArg<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for UserArgs<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for UserSelfTy<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for Instance<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for Pattern<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for Clause<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for Predicate<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for TraitPredPrintModifiersAndPath<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for TraitPredPrintWithBoundConstness<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for TraitRefPrintOnlyTraitName<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for TraitRefPrintOnlyTraitPath<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for TraitRefPrintSugared<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for BoundRegion
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for LateParamRegion
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for Region<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for BoundVar
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for ClosureSizeProfileData<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for ImplHeader<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for InstantiatedPredicates<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for OpaqueHiddenType<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for ParamEnv<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for Placeholder<BoundRegion>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for Placeholder<BoundVar>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for Placeholder<BoundTy>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for Term<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for Ty<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for ParamConst
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for ParamTy
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for CanonicalUserTypeAnnotation<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for UserTypeAnnotationIndex
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for Clauses<'tcx>
impl<'tcx, N> TypeVisitable<TyCtxt<'tcx>> for ImplSource<'tcx, N>where
N: TypeVisitable<TyCtxt<'tcx>>,
impl<'tcx, N> TypeVisitable<TyCtxt<'tcx>> for ImplSourceUserDefinedData<'tcx, N>where
N: TypeVisitable<TyCtxt<'tcx>>,
impl<'tcx, O> TypeVisitable<TyCtxt<'tcx>> for AssertKind<O>where
O: TypeVisitable<TyCtxt<'tcx>>,
impl<'tcx, R> TypeVisitable<TyCtxt<'tcx>> for QueryResponse<'tcx, R>where
R: TypeVisitable<TyCtxt<'tcx>>,
impl<'tcx, T> TypeVisitable<TyCtxt<'tcx>> for ClearCrossCrate<T>where
T: TypeVisitable<TyCtxt<'tcx>>,
impl<'tcx, T> TypeVisitable<TyCtxt<'tcx>> for Normalize<T>where
T: TypeVisitable<TyCtxt<'tcx>>,
impl<'tcx, T> TypeVisitable<TyCtxt<'tcx>> for ParamEnvAnd<'tcx, T>where
T: TypeVisitable<TyCtxt<'tcx>>,
impl<'tcx, T: TypeVisitable<TyCtxt<'tcx>>> TypeVisitable<TyCtxt<'tcx>> for &'tcx List<T>
impl<'tcx, V, T> TypeVisitable<TyCtxt<'tcx>> for ProjectionElem<V, T>
impl<I> TypeVisitable<I> for TypeError<I>where
I: Interner,
ExpectedFound<<I as Interner>::Safety>: TypeVisitable<I>,
ExpectedFound<<I as Interner>::Abi>: TypeVisitable<I>,
<I as Interner>::Region: TypeVisitable<I>,
<I as Interner>::BoundRegion: TypeVisitable<I>,
ExpectedFound<<I as Interner>::Ty>: TypeVisitable<I>,
ExpectedFound<<I as Interner>::DefId>: TypeVisitable<I>,
<I as Interner>::Ty: TypeVisitable<I>,
<I as Interner>::Const: TypeVisitable<I>,
ExpectedFound<<I as Interner>::BoundExistentialPredicates>: TypeVisitable<I>,
ExpectedFound<<I as Interner>::Const>: TypeVisitable<I>,
<I as Interner>::DefId: TypeVisitable<I>,
impl<I> TypeVisitable<I> for ExistentialPredicate<I>where
I: Interner,
ExistentialTraitRef<I>: TypeVisitable<I>,
ExistentialProjection<I>: TypeVisitable<I>,
<I as Interner>::DefId: TypeVisitable<I>,
impl<I> TypeVisitable<I> for ClauseKind<I>where
I: Interner,
TraitPredicate<I>: TypeVisitable<I>,
OutlivesPredicate<I, <I as Interner>::Region>: TypeVisitable<I>,
OutlivesPredicate<I, <I as Interner>::Ty>: TypeVisitable<I>,
ProjectionPredicate<I>: TypeVisitable<I>,
<I as Interner>::Const: TypeVisitable<I>,
<I as Interner>::Ty: TypeVisitable<I>,
<I as Interner>::GenericArg: TypeVisitable<I>,
impl<I> TypeVisitable<I> for PredicateKind<I>where
I: Interner,
ClauseKind<I>: TypeVisitable<I>,
<I as Interner>::DefId: TypeVisitable<I>,
SubtypePredicate<I>: TypeVisitable<I>,
CoercePredicate<I>: TypeVisitable<I>,
<I as Interner>::Const: TypeVisitable<I>,
NormalizesTo<I>: TypeVisitable<I>,
<I as Interner>::Term: TypeVisitable<I>,
impl<I> TypeVisitable<I> for AliasRelationDirectionwhere
I: Interner,
impl<I> TypeVisitable<I> for AliasTyKindwhere
I: Interner,
impl<I> TypeVisitable<I> for BoundConstnesswhere
I: Interner,
impl<I> TypeVisitable<I> for CanonicalTyVarKindwhere
I: Interner,
impl<I> TypeVisitable<I> for CanonicalVarKind<I>where
I: Interner,
<I as Interner>::PlaceholderTy: TypeVisitable<I>,
<I as Interner>::PlaceholderRegion: TypeVisitable<I>,
<I as Interner>::PlaceholderConst: TypeVisitable<I>,
impl<I> TypeVisitable<I> for FloatTywhere
I: Interner,
impl<I> TypeVisitable<I> for InferTywhere
I: Interner,
impl<I> TypeVisitable<I> for IntVarValuewhere
I: Interner,
impl<I> TypeVisitable<I> for Movabilitywhere
I: Interner,
impl<I> TypeVisitable<I> for Mutabilitywhere
I: Interner,
impl<I> TypeVisitable<I> for PredicatePolaritywhere
I: Interner,
impl<I> TypeVisitable<I> for Variancewhere
I: Interner,
impl<I> TypeVisitable<I> for BuiltinImplSourcewhere
I: Interner,
impl<I> TypeVisitable<I> for rustc_middle::ty::solve::Certaintywhere
I: Interner,
impl<I> TypeVisitable<I> for GoalSourcewhere
I: Interner,
impl<I> TypeVisitable<I> for MaybeCausewhere
I: Interner,
impl<I> TypeVisitable<I> for ProbeKind<I>where
I: Interner,
Result<Canonical<I, Response<I>>, NoSolution>: TypeVisitable<I>,
CandidateSource<I>: TypeVisitable<I>,
impl<I> TypeVisitable<I> for rustc_type_ir::const_kind::UnevaluatedConst<I>where
I: Interner,
<I as Interner>::DefId: TypeVisitable<I>,
<I as Interner>::GenericArgs: TypeVisitable<I>,
impl<I> TypeVisitable<I> for OpaqueTypeKey<I>where
I: Interner,
<I as Interner>::LocalDefId: TypeVisitable<I>,
<I as Interner>::GenericArgs: TypeVisitable<I>,
impl<I> TypeVisitable<I> for AliasTerm<I>where
I: Interner,
<I as Interner>::GenericArgs: TypeVisitable<I>,
<I as Interner>::DefId: TypeVisitable<I>,
impl<I> TypeVisitable<I> for CoercePredicate<I>
impl<I> TypeVisitable<I> for ExistentialProjection<I>where
I: Interner,
<I as Interner>::DefId: TypeVisitable<I>,
<I as Interner>::GenericArgs: TypeVisitable<I>,
<I as Interner>::Term: TypeVisitable<I>,
impl<I> TypeVisitable<I> for ExistentialTraitRef<I>where
I: Interner,
<I as Interner>::DefId: TypeVisitable<I>,
<I as Interner>::GenericArgs: TypeVisitable<I>,
impl<I> TypeVisitable<I> for NormalizesTo<I>
impl<I> TypeVisitable<I> for ProjectionPredicate<I>
impl<I> TypeVisitable<I> for SubtypePredicate<I>
impl<I> TypeVisitable<I> for TraitPredicate<I>
impl<I> TypeVisitable<I> for TraitRef<I>where
I: Interner,
<I as Interner>::DefId: TypeVisitable<I>,
<I as Interner>::GenericArgs: TypeVisitable<I>,
impl<I> TypeVisitable<I> for AliasTy<I>where
I: Interner,
<I as Interner>::GenericArgs: TypeVisitable<I>,
<I as Interner>::DefId: TypeVisitable<I>,
impl<I> TypeVisitable<I> for FnSig<I>where
I: Interner,
<I as Interner>::Tys: TypeVisitable<I>,
<I as Interner>::Safety: TypeVisitable<I>,
<I as Interner>::Abi: TypeVisitable<I>,
impl<I> TypeVisitable<I> for TypeAndMut<I>
impl<I> TypeVisitable<I> for ExternalConstraintsData<I>where
I: Interner,
Vec<OutlivesPredicate<I, <I as Interner>::GenericArg>>: TypeVisitable<I>,
Vec<(OpaqueTypeKey<I>, <I as Interner>::Ty)>: TypeVisitable<I>,
NestedNormalizationGoals<I>: TypeVisitable<I>,
impl<I> TypeVisitable<I> for NestedNormalizationGoals<I>
impl<I> TypeVisitable<I> for NoSolutionwhere
I: Interner,
impl<I> TypeVisitable<I> for PredefinedOpaquesData<I>
impl<I> TypeVisitable<I> for Response<I>where
I: Interner,
CanonicalVarValues<I>: TypeVisitable<I>,
<I as Interner>::ExternalConstraints: TypeVisitable<I>,
impl<I> TypeVisitable<I> for CanonicalVarInfo<I>
impl<I> TypeVisitable<I> for CanonicalVarValues<I>
impl<I> TypeVisitable<I> for ClosureArgs<I>
impl<I> TypeVisitable<I> for CoroutineArgs<I>
impl<I> TypeVisitable<I> for CoroutineClosureArgs<I>
impl<I> TypeVisitable<I> for CoroutineClosureSignature<I>where
I: Interner,
<I as Interner>::Ty: TypeVisitable<I>,
<I as Interner>::Safety: TypeVisitable<I>,
<I as Interner>::Abi: TypeVisitable<I>,
impl<I> TypeVisitable<I> for DebruijnIndexwhere
I: Interner,
impl<I> TypeVisitable<I> for FnHeader<I>where
I: Interner,
<I as Interner>::Safety: TypeVisitable<I>,
<I as Interner>::Abi: TypeVisitable<I>,
impl<I> TypeVisitable<I> for FnSigTys<I>
impl<I> TypeVisitable<I> for GenSig<I>
impl<I> TypeVisitable<I> for RegionVidwhere
I: Interner,
impl<I> TypeVisitable<I> for UniverseIndexwhere
I: Interner,
impl<I, A> TypeVisitable<I> for OutlivesPredicate<I, A>
impl<I, P> TypeVisitable<I> for Goal<I, P>
impl<I, P> TypeVisitable<I> for QueryInput<I, P>where
I: Interner,
Goal<I, P>: TypeVisitable<I>,
<I as Interner>::PredefinedOpaques: TypeVisitable<I>,
impl<I, T> !TypeVisitable<I> for EarlyBinder<I, T>where
I: Interner,
For early binders, you should first call instantiate
before using any visitors.