Trait TypeVisitable

Source
pub trait TypeVisitable<I: Interner>: Debug {
    // Required method
    fn visit_with<V: TypeVisitor<I>>(&self, visitor: &mut V) -> V::Result;
}
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: TypeVisitor<I>>(&self, visitor: &mut V) -> V::Result

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<I: Interner> TypeVisitable<I> for bool

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Implementors§

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

impl<I> TypeVisitable<I> for NestedNormalizationGoals<I>

Source§

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

Source§

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

Source§

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

Source§

impl<I> TypeVisitable<I> for AliasTy<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 CoercePredicate<I>
where I: Interner, I::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::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 FnHeader<I>
where I: Interner, I::Safety: TypeVisitable<I>, I::Abi: TypeVisitable<I>,

Source§

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

Source§

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

Source§

impl<I> TypeVisitable<I> for GenSig<I>
where I: Interner, I::Ty: TypeVisitable<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 OpaqueTypeKey<I>

Source§

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

Source§

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

Source§

impl<I> TypeVisitable<I> for UnevaluatedConst<I>

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

impl<I: Interner> TypeVisitable<I> for Certainty

Source§

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

Source§

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

Source§

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

Source§

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

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

Source§

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

Source§

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for MentionedItem<'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 RawPtrKind

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

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

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

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 CastKind

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

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

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 Asyncness

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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 BlockTailInfo

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

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

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

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

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

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

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

impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for VarDebugInfoFragment<'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 DropckOutlives<'tcx>

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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 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, T: TypeVisitable<TyCtxt<'tcx>> + Debug + Clone> TypeVisitable<TyCtxt<'tcx>> for Spanned<T>

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

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