pub trait TypeVisitable<I>: Debugwhere
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
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>
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<'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 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 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 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 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 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 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 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 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 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 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 RangeEnd
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for RangeEnd
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 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 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<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, 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, S> TypeVisitable<I> for IndexSet<T, S>where
I: Interner,
T: TypeVisitable<I>,
impl<I, T, S> TypeVisitable<I> for IndexSet<T, S>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, 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>,
Source§impl<I, T, const N: usize> TypeVisitable<I> for SmallVec<[T; N]>where
I: Interner,
T: TypeVisitable<I>,
impl<I, T, const N: usize> TypeVisitable<I> for SmallVec<[T; N]>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 &[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 Arc<T>where
I: Interner,
T: TypeVisitable<I>,
impl<I, T> TypeVisitable<I> for Arc<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 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 ThinVec<T>where
I: Interner,
T: TypeVisitable<I>,
impl<I, T> TypeVisitable<I> for ThinVec<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> 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 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 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>,
Implementors§
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>>> TypeVisitable<TyCtxt<'tcx>> for &'tcx List<T>
impl<'tcx, T> TypeVisitable<TyCtxt<'tcx>> for ClearCrossCrate<T>where
T: TypeVisitable<TyCtxt<'tcx>>,
impl<'tcx, T> TypeVisitable<TyCtxt<'tcx>> for DeeplyNormalize<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>> for PseudoCanonicalInput<'tcx, T>where
T: TypeVisitable<TyCtxt<'tcx>>,
impl<'tcx, V, T> TypeVisitable<TyCtxt<'tcx>> for ProjectionElem<V, T>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for Adjust
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for Adjustment<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for AdtDef<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for AdtKind
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for AggregateKind<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for AnnotationSource
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for AscribeUserType<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for Ascription<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for AssocItem
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for AssocKind
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for Asyncness
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for AutoBorrow
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for AutoBorrowMutability
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for BackwardIncompatibleDropReason
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for BasicBlock
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for BasicBlockData<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for BasicBlocks<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for BinOp
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for BindingForm<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for BlockTailInfo
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for Body<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for rustc_middle::ty::BorrowKind
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for rustc_middle::mir::BorrowKind
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for BoundRegion<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for BoundTy<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for Cache
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for CallSource
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for CanonicalUserTypeAnnotation<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for CaptureInfo
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for CapturedPlace<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for rustc_middle::ty::abstract_const::CastKind
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for rustc_middle::mir::CastKind
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for rustc_middle::infer::canonical::Certainty
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for Clause<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for Clauses<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for ClosureSizeProfileData<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for rustc_middle::mir::Const<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for rustc_middle::ty::Const<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for ConstOperand<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for ConstValue
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for ConstraintCategory<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for CopyNonOverlapping<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for CoroutineInfo<'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 DerefAdjustKind
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for DerivedCause<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for DerivedHostCause<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for DropckOutlives<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for DropckOutlivesResult<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for Eq<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for Expr<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for ExprKind
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for ExternalConstraints<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for FakeReadCause
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for FieldPat<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for GenericArg<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for GlobalId<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for ImplDerivedCause<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for ImplDerivedHostCause<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for ImpliedOutlivesBounds<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for InlineAsmMacro
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for InlineAsmOperand<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for Instance<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for InstanceKind<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for IsConstable
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for Local
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for LocalDecl<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for LocalInfo<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for MatchExpressionArmCause<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for MentionedItem<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for MethodAutoderefSteps<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for MirPhase
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for MirSource<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for NonDivergingIntrinsic<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for NormalizationResult<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for NotConstEvaluatable
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for ObligationCause<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for ObligationCauseCode<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for ObligationCauseCodeHandle<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for Operand<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for OutlivesBound<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for OverflowError
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for OverloadedDeref
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for ParamEnv<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for ParamTy
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for Pat<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for PatAdjust
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for PatAdjustment<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for PatExtra<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for PatKind<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for PatRange<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for PatRangeBoundary<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for Pattern<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for PatternOriginExpr
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for rustc_middle::hir::place::Place<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for rustc_middle::mir::Place<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for PlaceBase
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for PlaceTy<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for PointerCoercion
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for Predicate<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for Projection<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for ProjectionKind
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for Promoted
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for ProvePredicate<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for ProvisionalHiddenType<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for QueryRegionConstraints<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for RawPtrKind
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for Region<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for ReifyReason
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for ReturnConstraint
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for RuntimeChecks
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for Rvalue<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for ScalarInt
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for SelectionCandidate<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for SelectionError<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for SignatureMismatchData<'tcx>
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 Statement<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for StatementKind<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for StmtDebugInfo<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for StmtDebugInfos<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for Subtype<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for SwitchTargets
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for Term<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for Terminator<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for TerminatorKind<'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 Ty<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for TypingEnv<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for UnOp
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for rustc_middle::mir::UnevaluatedConst<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for UnwindAction
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for UnwindTerminateReason
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for UpvarArgs<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for UpvarCapture
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for UpvarId
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for UpvarPath
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for UserArgs<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for UserSelfTy<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for UserType<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for UserTypeAnnotationIndex
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for UserTypeKind<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for UserTypeProjection
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for UserTypeProjections
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for ValTree<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for Value<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for VarDebugInfo<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for VarDebugInfoContents<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for VarDebugInfoFragment<'tcx>
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for WellFormedLoc
impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for WithRetag
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.