rustc_type_ir::visit

Trait TypeVisitable

Source
pub trait TypeVisitable<I: Interner>: Debug + Clone {
    // 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> TypeVisitable<I> for String

Source§

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

Source§

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

Source§

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

Source§

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

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 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>, U: TypeVisitable<I>> TypeVisitable<I> for (T, U)

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 TypeError<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 ProbeKind<I>

Source§

impl<I> TypeVisitable<I> for CanonicalVarInfo<I>

Source§

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

Source§

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

Source§

impl<I> TypeVisitable<I> for GenSig<I>
where I: Interner, I::Ty: TypeVisitable<I>,

Source§

impl<I> TypeVisitable<I> for AliasTy<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 TypeAndMut<I>
where I: Interner, 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 Variance

Source§

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

Source§

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

Source§

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

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 MaybeCause

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

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<I: Interner, T: TypeVisitable<I>> TypeVisitable<I> for Lrc<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 ByRef

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

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

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

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

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

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

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

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

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

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

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

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

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

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

impl<I> TypeVisitable<I> for AsyncCallableRelevantTypes<I>
where I: Interner, I::Ty: TypeVisitable<I>,

impl<I> TypeVisitable<I> for NestedGoals<I>
where I: Interner, Vec<Goal<I, NormalizesTo<I>>>: TypeVisitable<I>, Vec<(GoalSource, Goal<I, I::Predicate>)>: TypeVisitable<I>,

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