# Trait rustc_middle::ty::visit::TypeVisitable

source ·

    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§

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`.

## Object Safety§

This trait is not object safe.

## Implementations on Foreign Types§

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 Unsafety

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 Abi

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<F: TypeVisitor<TyCtxt<'tcx>>>(&self, _: &mut F) -> F::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> 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, 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 Arc<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, 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 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 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 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 BuiltinImplSource

source§

### impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for DefiningAnchor<'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 Reveal

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::traits::solve::Certainty

source§

### impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for GoalSource

source§

### impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for MaybeCause

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

source§

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

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 BindingMode

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

source§

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

source§

### impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for AliasKind

source§

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

source§

### impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for BoundConstness

source§

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

source§

### impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for FloatTy

source§

### impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for ImplPolarity

source§

### impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for ImplSubject<'tcx>

source§

### impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for InferConst

source§

### impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for InferTy

source§

### impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for IntVarValue

source§

### impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for TermKind<'tcx>

source§

### impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for Variance

source§

### impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for TypeError<'tcx>

source§

### impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for InstanceDef<'tcx>

source§

### impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for ExistentialPredicate<'tcx>

source§

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

source§

### impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for UserType<'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 CanonicalVarValues<'tcx>

source§

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

source§

### impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for MemberConstraint<'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 BranchInfo

source§

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

source§

### impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for CodeRegion

source§

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

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

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 Eq<'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 ExternalConstraintsData<'tcx>

source§

### impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for NestedNormalizationGoals<'tcx>

source§

### impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for PredefinedOpaques<'tcx>

source§

### impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for Response<'tcx>

source§

### impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for DerivedObligationCause<'tcx>

source§

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

source§

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

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 rustc_middle::ty::consts::kind::UnevaluatedConst<'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 Clause<'tcx>

source§

### impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for CoercePredicate<'tcx>

source§

### impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for ExistentialProjection<'tcx>

source§

### impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for ExistentialTraitRef<'tcx>

source§

### impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for NormalizesTo<'tcx>

source§

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

source§

### impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for ProjectionPredicate<'tcx>

source§

### impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for SubtypePredicate<'tcx>

source§

### impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for TraitPredicate<'tcx>

source§

### impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for TraitRef<'tcx>

source§

### impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for TraitPredPrintModifiersAndPath<'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 LateParamRegion

source§

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

source§

### impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for RegionVid

source§

### impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for CoroutineWitness<'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 OpaqueTypeKey<'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 AliasTy<'tcx>

source§

### impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for ClosureArgs<'tcx>

source§

### impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for CoroutineArgs<'tcx>

source§

### impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for CoroutineClosureArgs<'tcx>

source§

### impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for CoroutineClosureSignature<'tcx>

source§

### impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for FnSig<'tcx>

source§

### impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for GenSig<'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 UserTypeAnnotationIndex

source§

### impl<'tcx, A, B> TypeVisitable<TyCtxt<'tcx>> for OutlivesPredicate<A, B>
where A: TypeVisitable<TyCtxt<'tcx>>, B: TypeVisitable<TyCtxt<'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, P> TypeVisitable<TyCtxt<'tcx>> for Goal<'tcx, P>
where P: 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 EarlyBinder<T>

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 State<'tcx, T>
where T: TypeVisitable<TyCtxt<'tcx>>,

source§

### impl<'tcx, T> TypeVisitable<TyCtxt<'tcx>> for QueryInput<'tcx, T>
where T: TypeVisitable<TyCtxt<'tcx>>,

source§

### impl<'tcx, T> TypeVisitable<TyCtxt<'tcx>> for ExpectedFound<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>>> TypeVisitable<TyCtxt<'tcx>> for &'tcx List<T>

source§

### impl<'tcx, T: TypeVisitable<TyCtxt<'tcx>>> TypeVisitable<TyCtxt<'tcx>> for Binder<'tcx, 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 ClauseKind<I>
where I: Interner, <I as Interner>::Ty: TypeVisitable<I>, <I as Interner>::Const: TypeVisitable<I>, <I as Interner>::GenericArg: TypeVisitable<I>, <I as Interner>::TraitPredicate: TypeVisitable<I>, <I as Interner>::ProjectionPredicate: TypeVisitable<I>, <I as Interner>::TypeOutlivesPredicate: TypeVisitable<I>, <I as Interner>::RegionOutlivesPredicate: TypeVisitable<I>,

source§

### impl<I> TypeVisitable<I> for PredicateKind<I>
where I: Interner, <I as Interner>::DefId: TypeVisitable<I>, <I as Interner>::Const: TypeVisitable<I>, <I as Interner>::GenericArgs: TypeVisitable<I>, <I as Interner>::Term: TypeVisitable<I>, <I as Interner>::CoercePredicate: TypeVisitable<I>, <I as Interner>::SubtypePredicate: TypeVisitable<I>, <I as Interner>::NormalizesTo: TypeVisitable<I>, ClauseKind<I>: TypeVisitable<I>,

source§

### impl<I> TypeVisitable<I> for AliasRelationDirection
where I: Interner,

source§

### impl<I> TypeVisitable<I> for CanonicalVarKind<I>
where I: Interner, <I as Interner>::Ty: TypeVisitable<I>,

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

source§

### impl<I> TypeVisitable<I> for TypeAndMut<I>
where I: Interner, <I as Interner>::Ty: TypeVisitable<I>,

source§

### impl<I, V> TypeVisitable<I> for Canonical<I, V>
where I: Interner, V: TypeVisitable<I>, <I as Interner>::CanonicalVars: TypeVisitable<I>,