TypeVisitable in rustc_infer::infer::canonical::ir - Rust
Description: This trait is implemented for every type that can be visited, providing the skeleton of the traversal.

Skip to main content

## TypeVisitable

# Trait TypeVisitable

Source

    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§

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

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

Source§

#### fn visit_with<F>(&self, _: &mut F) -> <F as TypeVisitor<TyCtxt<'tcx>>>::Result
where F: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<F>(&self, _: &mut F) -> <F as TypeVisitor<TyCtxt<'tcx>>>::Result
where F: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<F>(&self, _: &mut F) -> <F as TypeVisitor<TyCtxt<'tcx>>>::Result
where F: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<F>(&self, _: &mut F) -> <F as TypeVisitor<TyCtxt<'tcx>>>::Result
where F: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<__V>( &self, __visitor: &mut __V, ) -> <__V as TypeVisitor<TyCtxt<'tcx>>>::Result
where __V: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<__V>( &self, __visitor: &mut __V, ) -> <__V as TypeVisitor<TyCtxt<'tcx>>>::Result
where __V: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<__V>( &self, __visitor: &mut __V, ) -> <__V as TypeVisitor<TyCtxt<'tcx>>>::Result
where __V: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<F>(&self, _: &mut F) -> <F as TypeVisitor<TyCtxt<'tcx>>>::Result
where F: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<F>(&self, _: &mut F) -> <F as TypeVisitor<TyCtxt<'tcx>>>::Result
where F: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<__V>( &self, __visitor: &mut __V, ) -> <__V as TypeVisitor<TyCtxt<'tcx>>>::Result
where __V: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<__V>( &self, __visitor: &mut __V, ) -> <__V as TypeVisitor<TyCtxt<'tcx>>>::Result
where __V: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<__V>( &self, __visitor: &mut __V, ) -> <__V as TypeVisitor<TyCtxt<'tcx>>>::Result
where __V: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<__V>( &self, __visitor: &mut __V, ) -> <__V as TypeVisitor<TyCtxt<'tcx>>>::Result
where __V: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<__V>( &self, __visitor: &mut __V, ) -> <__V as TypeVisitor<TyCtxt<'tcx>>>::Result
where __V: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<__V>( &self, __visitor: &mut __V, ) -> <__V as TypeVisitor<TyCtxt<'tcx>>>::Result
where __V: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<__V>( &self, __visitor: &mut __V, ) -> <__V as TypeVisitor<TyCtxt<'tcx>>>::Result
where __V: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<__V>( &self, __visitor: &mut __V, ) -> <__V as TypeVisitor<TyCtxt<'tcx>>>::Result
where __V: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<__V>( &self, __visitor: &mut __V, ) -> <__V as TypeVisitor<TyCtxt<'tcx>>>::Result
where __V: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<__V>( &self, __visitor: &mut __V, ) -> <__V as TypeVisitor<TyCtxt<'tcx>>>::Result
where __V: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<F>(&self, _: &mut F) -> <F as TypeVisitor<TyCtxt<'tcx>>>::Result
where F: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<__V>( &self, __visitor: &mut __V, ) -> <__V as TypeVisitor<TyCtxt<'tcx>>>::Result
where __V: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<F>(&self, _: &mut F) -> <F as TypeVisitor<TyCtxt<'tcx>>>::Result
where F: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<F>(&self, _: &mut F) -> <F as TypeVisitor<TyCtxt<'tcx>>>::Result
where F: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<__V>( &self, __visitor: &mut __V, ) -> <__V as TypeVisitor<TyCtxt<'tcx>>>::Result
where __V: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<__V>( &self, __visitor: &mut __V, ) -> <__V as TypeVisitor<TyCtxt<'tcx>>>::Result
where __V: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<F>(&self, _: &mut F) -> <F as TypeVisitor<TyCtxt<'tcx>>>::Result
where F: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<__V>( &self, __visitor: &mut __V, ) -> <__V as TypeVisitor<TyCtxt<'tcx>>>::Result
where __V: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<__V>( &self, __visitor: &mut __V, ) -> <__V as TypeVisitor<TyCtxt<'tcx>>>::Result
where __V: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<F>(&self, _: &mut F) -> <F as TypeVisitor<TyCtxt<'tcx>>>::Result
where F: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<F>(&self, _: &mut F) -> <F as TypeVisitor<TyCtxt<'tcx>>>::Result
where F: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<F>(&self, _: &mut F) -> <F as TypeVisitor<TyCtxt<'tcx>>>::Result
where F: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<__V>( &self, __visitor: &mut __V, ) -> <__V as TypeVisitor<TyCtxt<'tcx>>>::Result
where __V: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<__V>( &self, __visitor: &mut __V, ) -> <__V as TypeVisitor<TyCtxt<'tcx>>>::Result
where __V: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<__V>( &self, __visitor: &mut __V, ) -> <__V as TypeVisitor<TyCtxt<'tcx>>>::Result
where __V: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<__V>( &self, __visitor: &mut __V, ) -> <__V as TypeVisitor<TyCtxt<'tcx>>>::Result
where __V: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<__V>( &self, __visitor: &mut __V, ) -> <__V as TypeVisitor<TyCtxt<'tcx>>>::Result
where __V: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<__V>( &self, __visitor: &mut __V, ) -> <__V as TypeVisitor<TyCtxt<'tcx>>>::Result
where __V: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<__V>( &self, __visitor: &mut __V, ) -> <__V as TypeVisitor<TyCtxt<'tcx>>>::Result
where __V: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<__V>( &self, __visitor: &mut __V, ) -> <__V as TypeVisitor<TyCtxt<'tcx>>>::Result
where __V: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<__V>( &self, __visitor: &mut __V, ) -> <__V as TypeVisitor<TyCtxt<'tcx>>>::Result
where __V: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<F>(&self, _: &mut F) -> <F as TypeVisitor<TyCtxt<'tcx>>>::Result
where F: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<__V>( &self, __visitor: &mut __V, ) -> <__V as TypeVisitor<TyCtxt<'tcx>>>::Result
where __V: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<__V>( &self, __visitor: &mut __V, ) -> <__V as TypeVisitor<TyCtxt<'tcx>>>::Result
where __V: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<F>(&self, _: &mut F) -> <F as TypeVisitor<TyCtxt<'tcx>>>::Result
where F: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<__V>( &self, __visitor: &mut __V, ) -> <__V as TypeVisitor<TyCtxt<'tcx>>>::Result
where __V: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<__V>( &self, __visitor: &mut __V, ) -> <__V as TypeVisitor<TyCtxt<'tcx>>>::Result
where __V: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<F>(&self, _: &mut F) -> <F as TypeVisitor<TyCtxt<'tcx>>>::Result
where F: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<F>(&self, _: &mut F) -> <F as TypeVisitor<TyCtxt<'tcx>>>::Result
where F: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<F>(&self, _: &mut F) -> <F as TypeVisitor<TyCtxt<'tcx>>>::Result
where F: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<__V>( &self, __visitor: &mut __V, ) -> <__V as TypeVisitor<TyCtxt<'tcx>>>::Result
where __V: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<__V>( &self, __visitor: &mut __V, ) -> <__V as TypeVisitor<TyCtxt<'tcx>>>::Result
where __V: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<__V>( &self, __visitor: &mut __V, ) -> <__V as TypeVisitor<TyCtxt<'tcx>>>::Result
where __V: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<__V>( &self, __visitor: &mut __V, ) -> <__V as TypeVisitor<TyCtxt<'tcx>>>::Result
where __V: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<__V>( &self, __visitor: &mut __V, ) -> <__V as TypeVisitor<TyCtxt<'tcx>>>::Result
where __V: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<F>(&self, _: &mut F) -> <F as TypeVisitor<TyCtxt<'tcx>>>::Result
where F: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<__V>( &self, __visitor: &mut __V, ) -> <__V as TypeVisitor<TyCtxt<'tcx>>>::Result
where __V: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<__V>( &self, __visitor: &mut __V, ) -> <__V as TypeVisitor<TyCtxt<'tcx>>>::Result
where __V: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<F>(&self, _: &mut F) -> <F as TypeVisitor<TyCtxt<'tcx>>>::Result
where F: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<F>(&self, _: &mut F) -> <F as TypeVisitor<TyCtxt<'tcx>>>::Result
where F: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<F>(&self, _: &mut F) -> <F as TypeVisitor<TyCtxt<'tcx>>>::Result
where F: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<V>( &self, visitor: &mut V, ) -> <V as TypeVisitor<TyCtxt<'tcx>>>::Result
where V: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<F>(&self, _: &mut F) -> <F as TypeVisitor<TyCtxt<'tcx>>>::Result
where F: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<F>(&self, _: &mut F) -> <F as TypeVisitor<TyCtxt<'tcx>>>::Result
where F: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<__V>( &self, __visitor: &mut __V, ) -> <__V as TypeVisitor<TyCtxt<'tcx>>>::Result
where __V: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<__V>( &self, __visitor: &mut __V, ) -> <__V as TypeVisitor<TyCtxt<'tcx>>>::Result
where __V: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<__V>( &self, __visitor: &mut __V, ) -> <__V as TypeVisitor<TyCtxt<'tcx>>>::Result
where __V: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<__V>( &self, __visitor: &mut __V, ) -> <__V as TypeVisitor<TyCtxt<'tcx>>>::Result
where __V: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<__V>( &self, __visitor: &mut __V, ) -> <__V as TypeVisitor<TyCtxt<'tcx>>>::Result
where __V: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<__V>( &self, __visitor: &mut __V, ) -> <__V as TypeVisitor<TyCtxt<'tcx>>>::Result
where __V: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<F>(&self, _: &mut F) -> <F as TypeVisitor<TyCtxt<'tcx>>>::Result
where F: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<__V>( &self, __visitor: &mut __V, ) -> <__V as TypeVisitor<TyCtxt<'tcx>>>::Result
where __V: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<__V>( &self, __visitor: &mut __V, ) -> <__V as TypeVisitor<TyCtxt<'tcx>>>::Result
where __V: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<__V>( &self, __visitor: &mut __V, ) -> <__V as TypeVisitor<TyCtxt<'tcx>>>::Result
where __V: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<__V>( &self, __visitor: &mut __V, ) -> <__V as TypeVisitor<TyCtxt<'tcx>>>::Result
where __V: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<F>(&self, _: &mut F) -> <F as TypeVisitor<TyCtxt<'tcx>>>::Result
where F: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<__V>( &self, __visitor: &mut __V, ) -> <__V as TypeVisitor<TyCtxt<'tcx>>>::Result
where __V: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<F>(&self, _: &mut F) -> <F as TypeVisitor<TyCtxt<'tcx>>>::Result
where F: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<__V>( &self, __visitor: &mut __V, ) -> <__V as TypeVisitor<TyCtxt<'tcx>>>::Result
where __V: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<__V>( &self, __visitor: &mut __V, ) -> <__V as TypeVisitor<TyCtxt<'tcx>>>::Result
where __V: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<F>(&self, _: &mut F) -> <F as TypeVisitor<TyCtxt<'tcx>>>::Result
where F: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<__V>( &self, __visitor: &mut __V, ) -> <__V as TypeVisitor<TyCtxt<'tcx>>>::Result
where __V: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<__V>( &self, __visitor: &mut __V, ) -> <__V as TypeVisitor<TyCtxt<'tcx>>>::Result
where __V: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<F>(&self, _: &mut F) -> <F as TypeVisitor<TyCtxt<'tcx>>>::Result
where F: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<F>(&self, _: &mut F) -> <F as TypeVisitor<TyCtxt<'tcx>>>::Result
where F: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<F>(&self, _: &mut F) -> <F as TypeVisitor<TyCtxt<'tcx>>>::Result
where F: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<__V>( &self, __visitor: &mut __V, ) -> <__V as TypeVisitor<TyCtxt<'tcx>>>::Result
where __V: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<F>(&self, _: &mut F) -> <F as TypeVisitor<TyCtxt<'tcx>>>::Result
where F: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<__V>( &self, __visitor: &mut __V, ) -> <__V as TypeVisitor<TyCtxt<'tcx>>>::Result
where __V: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<__V>( &self, __visitor: &mut __V, ) -> <__V as TypeVisitor<TyCtxt<'tcx>>>::Result
where __V: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<__V>( &self, __visitor: &mut __V, ) -> <__V as TypeVisitor<TyCtxt<'tcx>>>::Result
where __V: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<__V>( &self, __visitor: &mut __V, ) -> <__V as TypeVisitor<TyCtxt<'tcx>>>::Result
where __V: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<__V>( &self, __visitor: &mut __V, ) -> <__V as TypeVisitor<TyCtxt<'tcx>>>::Result
where __V: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<__V>( &self, __visitor: &mut __V, ) -> <__V as TypeVisitor<TyCtxt<'tcx>>>::Result
where __V: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<__V>( &self, __visitor: &mut __V, ) -> <__V as TypeVisitor<TyCtxt<'tcx>>>::Result
where __V: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<F>(&self, _: &mut F) -> <F as TypeVisitor<TyCtxt<'tcx>>>::Result
where F: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<__V>( &self, __visitor: &mut __V, ) -> <__V as TypeVisitor<TyCtxt<'tcx>>>::Result
where __V: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<__V>( &self, __visitor: &mut __V, ) -> <__V as TypeVisitor<TyCtxt<'tcx>>>::Result
where __V: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<__V>( &self, __visitor: &mut __V, ) -> <__V as TypeVisitor<TyCtxt<'tcx>>>::Result
where __V: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<__V>( &self, __visitor: &mut __V, ) -> <__V as TypeVisitor<TyCtxt<'tcx>>>::Result
where __V: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<__V>( &self, __visitor: &mut __V, ) -> <__V as TypeVisitor<TyCtxt<'tcx>>>::Result
where __V: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<__V>( &self, __visitor: &mut __V, ) -> <__V as TypeVisitor<TyCtxt<'tcx>>>::Result
where __V: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<__V>( &self, __visitor: &mut __V, ) -> <__V as TypeVisitor<TyCtxt<'tcx>>>::Result
where __V: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<__V>( &self, __visitor: &mut __V, ) -> <__V as TypeVisitor<TyCtxt<'tcx>>>::Result
where __V: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<__V>( &self, __visitor: &mut __V, ) -> <__V as TypeVisitor<TyCtxt<'tcx>>>::Result
where __V: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<V>( &self, _visitor: &mut V, ) -> <V as TypeVisitor<TyCtxt<'tcx>>>::Result
where V: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<F>(&self, _: &mut F) -> <F as TypeVisitor<TyCtxt<'tcx>>>::Result
where F: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<__V>( &self, __visitor: &mut __V, ) -> <__V as TypeVisitor<TyCtxt<'tcx>>>::Result
where __V: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<__V>( &self, __visitor: &mut __V, ) -> <__V as TypeVisitor<TyCtxt<'tcx>>>::Result
where __V: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<__V>( &self, __visitor: &mut __V, ) -> <__V as TypeVisitor<TyCtxt<'tcx>>>::Result
where __V: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<__V>( &self, __visitor: &mut __V, ) -> <__V as TypeVisitor<TyCtxt<'tcx>>>::Result
where __V: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<F>(&self, _: &mut F) -> <F as TypeVisitor<TyCtxt<'tcx>>>::Result
where F: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<__V>( &self, __visitor: &mut __V, ) -> <__V as TypeVisitor<TyCtxt<'tcx>>>::Result
where __V: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<V>( &self, visitor: &mut V, ) -> <V as TypeVisitor<TyCtxt<'tcx>>>::Result
where V: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<V>( &self, visitor: &mut V, ) -> <V as TypeVisitor<TyCtxt<'tcx>>>::Result
where V: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<__V>( &self, __visitor: &mut __V, ) -> <__V as TypeVisitor<TyCtxt<'tcx>>>::Result
where __V: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<V>( &self, visitor: &mut V, ) -> <V as TypeVisitor<TyCtxt<'tcx>>>::Result
where V: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<__V>( &self, __visitor: &mut __V, ) -> <__V as TypeVisitor<TyCtxt<'tcx>>>::Result
where __V: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<__V>( &self, __visitor: &mut __V, ) -> <__V as TypeVisitor<TyCtxt<'tcx>>>::Result
where __V: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<__V>( &self, __visitor: &mut __V, ) -> <__V as TypeVisitor<TyCtxt<'tcx>>>::Result
where __V: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<V>( &self, visitor: &mut V, ) -> <V as TypeVisitor<TyCtxt<'tcx>>>::Result
where V: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<V>( &self, visitor: &mut V, ) -> <V as TypeVisitor<TyCtxt<'tcx>>>::Result
where V: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<V>( &self, visitor: &mut V, ) -> <V as TypeVisitor<TyCtxt<'tcx>>>::Result
where V: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<__V>( &self, __visitor: &mut __V, ) -> <__V as TypeVisitor<TyCtxt<'tcx>>>::Result
where __V: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<__V>( &self, __visitor: &mut __V, ) -> <__V as TypeVisitor<TyCtxt<'tcx>>>::Result
where __V: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<__V>( &self, __visitor: &mut __V, ) -> <__V as TypeVisitor<TyCtxt<'tcx>>>::Result
where __V: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<__V>( &self, __visitor: &mut __V, ) -> <__V as TypeVisitor<TyCtxt<'tcx>>>::Result
where __V: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<__V>( &self, __visitor: &mut __V, ) -> <__V as TypeVisitor<TyCtxt<'tcx>>>::Result
where __V: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<V>( &self, visitor: &mut V, ) -> <V as TypeVisitor<TyCtxt<'tcx>>>::Result
where V: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<__V>( &self, __visitor: &mut __V, ) -> <__V as TypeVisitor<TyCtxt<'tcx>>>::Result
where __V: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<__V>( &self, __visitor: &mut __V, ) -> <__V as TypeVisitor<TyCtxt<'tcx>>>::Result
where __V: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<__V>( &self, __visitor: &mut __V, ) -> <__V as TypeVisitor<TyCtxt<'tcx>>>::Result
where __V: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<__V>( &self, __visitor: &mut __V, ) -> <__V as TypeVisitor<TyCtxt<'tcx>>>::Result
where __V: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<V>( &self, visitor: &mut V, ) -> <V as TypeVisitor<TyCtxt<'tcx>>>::Result
where V: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<V>( &self, visitor: &mut V, ) -> <V as TypeVisitor<TyCtxt<'tcx>>>::Result
where V: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<__V>( &self, __visitor: &mut __V, ) -> <__V as TypeVisitor<TyCtxt<'tcx>>>::Result
where __V: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<F>(&self, _: &mut F) -> <F as TypeVisitor<TyCtxt<'tcx>>>::Result
where F: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<__V>( &self, __visitor: &mut __V, ) -> <__V as TypeVisitor<TyCtxt<'tcx>>>::Result
where __V: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<__V>( &self, __visitor: &mut __V, ) -> <__V as TypeVisitor<TyCtxt<'tcx>>>::Result
where __V: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<F>(&self, _: &mut F) -> <F as TypeVisitor<TyCtxt<'tcx>>>::Result
where F: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<F>(&self, _: &mut F) -> <F as TypeVisitor<TyCtxt<'tcx>>>::Result
where F: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<F>(&self, _: &mut F) -> <F as TypeVisitor<TyCtxt<'tcx>>>::Result
where F: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<F>(&self, _: &mut F) -> <F as TypeVisitor<TyCtxt<'tcx>>>::Result
where F: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<V>( &self, visitor: &mut V, ) -> <V as TypeVisitor<TyCtxt<'tcx>>>::Result
where V: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<F>(&self, _: &mut F) -> <F as TypeVisitor<TyCtxt<'tcx>>>::Result
where F: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<F>(&self, _: &mut F) -> <F as TypeVisitor<TyCtxt<'tcx>>>::Result
where F: TypeVisitor<TyCtxt<'tcx>>,

Source§

### impl<'tcx, O> TypeVisitable<TyCtxt<'tcx>> for AssertKind<O>
where O: TypeVisitable<TyCtxt<'tcx>>,

Source§

#### fn visit_with<__V>( &self, __visitor: &mut __V, ) -> <__V as TypeVisitor<TyCtxt<'tcx>>>::Result
where __V: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<__V>( &self, __visitor: &mut __V, ) -> <__V as TypeVisitor<TyCtxt<'tcx>>>::Result
where __V: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<__V>( &self, __visitor: &mut __V, ) -> <__V as TypeVisitor<TyCtxt<'tcx>>>::Result
where __V: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<__V>( &self, __visitor: &mut __V, ) -> <__V as TypeVisitor<TyCtxt<'tcx>>>::Result
where __V: TypeVisitor<TyCtxt<'tcx>>,

Source§

### impl<'tcx, T> TypeVisitable<TyCtxt<'tcx>> for Spanned<T>
where T: TypeVisitable<TyCtxt<'tcx>> + Debug + Clone,

Source§

#### fn visit_with<V>( &self, visitor: &mut V, ) -> <V as TypeVisitor<TyCtxt<'tcx>>>::Result
where V: TypeVisitor<TyCtxt<'tcx>>,

Source§

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

Source§

#### fn visit_with<__V>( &self, __visitor: &mut __V, ) -> <__V as TypeVisitor<TyCtxt<'tcx>>>::Result
where __V: TypeVisitor<TyCtxt<'tcx>>,

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, 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> TypeVisitable<I> for ThinVec<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, S> TypeVisitable<I> for IndexSet<T, S>
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, 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>,

Source§

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

Source§

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

## Implementors§

Source§

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

Available on crate feature `nightly` only.

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

Source§

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

Source§

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

Source§

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

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

Source§

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

Source§

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

Source§

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

Source§

### impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for rustc_infer::infer::canonical::Certainty

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

### impl<'tcx> TypeVisitable<TyCtxt<'tcx>> for BoundTy<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, R> TypeVisitable<TyCtxt<'tcx>> for QueryResponse<'tcx, R>
where R: TypeVisitable<TyCtxt<'tcx>>,

Source§

### impl<'tcx, T> TypeVisitable<TyCtxt<'tcx>> for DeeplyNormalize<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 Obligation<'tcx, T>
where T: TypeVisitable<TyCtxt<'tcx>>,

Source§

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

Source§

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

Source§

### impl<I> TypeVisitable<I> for rustc_infer::traits::solve::Certainty
where I: Interner,

Source§

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

Source§

### impl<I> TypeVisitable<I> for ProbeKind<I>
where I: Interner, Result<Canonical<I, Response<I>>, NoSolution>: TypeVisitable<I>, CandidateSource<I>: TypeVisitable<I>,

Source§

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

Source§

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

Source§

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

Source§

### 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>::Term: TypeVisitable<I>, HostEffectPredicate<I>: TypeVisitable<I>,

Source§

### impl<I> TypeVisitable<I> for ExistentialPredicate<I>
where I: Interner, ExistentialTraitRef<I>: TypeVisitable<I>, ExistentialProjection<I>: TypeVisitable<I>, <I as Interner>::TraitId: TypeVisitable<I>,

Source§

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

Source§

### impl<I> TypeVisitable<I> for PatternKind<I>
where I: Interner, <I as Interner>::Const: TypeVisitable<I>, <I as Interner>::PatList: TypeVisitable<I>,

Source§

### impl<I> TypeVisitable<I> for PredicateKind<I>
where I: Interner, ClauseKind<I>: TypeVisitable<I>, <I as Interner>::TraitId: 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>,

Source§

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

Source§

### impl<I> TypeVisitable<I> for ValTreeKind<I>
where I: Interner, <I as Interner>::ScalarInt: TypeVisitable<I>, <I as Interner>::Consts: TypeVisitable<I>,

Source§

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

Source§

### impl<I> TypeVisitable<I> for TypeError<I>
where I: Interner, ExpectedFound<<I as Interner>::Const>: TypeVisitable<I>, <I as Interner>::Region: TypeVisitable<I>, BoundRegion<I>: TypeVisitable<I>, ExpectedFound<<I as Interner>::Ty>: TypeVisitable<I>, ExpectedFound<<I as Interner>::TraitId>: TypeVisitable<I>, <I as Interner>::Ty: TypeVisitable<I>, <I as Interner>::Const: TypeVisitable<I>, ExpectedFound<<I as Interner>::DefId>: TypeVisitable<I>, ExpectedFound<<I as Interner>::BoundExistentialPredicates>: TypeVisitable<I>, <I as Interner>::DefId: TypeVisitable<I>,

Source§

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

Source§

### impl<I> TypeVisitable<I> for NestedNormalizationGoals<I>
where I: Interner, Vec<(GoalSource, Goal<I, <I as Interner>::Predicate>)>: TypeVisitable<I>,

Source§

### impl<I> TypeVisitable<I> for Response<I>
where I: Interner, CanonicalVarValues<I>: TypeVisitable<I>, <I as Interner>::ExternalConstraints: TypeVisitable<I>,

Source§

### impl<I> TypeVisitable<I> for AliasTerm<I>
where I: Interner, <I as Interner>::GenericArgs: TypeVisitable<I>, <I as Interner>::DefId: TypeVisitable<I>,

Source§

### impl<I> TypeVisitable<I> for AliasTy<I>
where I: Interner, <I as Interner>::GenericArgs: TypeVisitable<I>,

Source§

### impl<I> TypeVisitable<I> for CanonicalVarValues<I>
where I: Interner, <I as Interner>::GenericArgs: TypeVisitable<I>,

Source§

### impl<I> TypeVisitable<I> for ClosureArgs<I>
where I: Interner, <I as Interner>::GenericArgs: TypeVisitable<I>,

Source§

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

Source§

### impl<I> TypeVisitable<I> for CoroutineArgs<I>
where I: Interner, <I as Interner>::GenericArgs: TypeVisitable<I>,

Source§

### impl<I> TypeVisitable<I> for CoroutineClosureArgs<I>
where I: Interner, <I as Interner>::GenericArgs: TypeVisitable<I>,

Source§

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

Source§

### impl<I> TypeVisitable<I> for CoroutineWitnessTypes<I>
where I: Interner, <I as Interner>::Tys: TypeVisitable<I>, <I as Interner>::RegionAssumptions: TypeVisitable<I>,

Source§

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

Source§

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

Source§

### impl<I> TypeVisitable<I> for ExistentialTraitRef<I>
where I: Interner, <I as Interner>::TraitId: TypeVisitable<I>, <I as Interner>::GenericArgs: TypeVisitable<I>,

Source§

### impl<I> TypeVisitable<I> for FnHeader<I>
where I: Interner, <I as Interner>::Safety: TypeVisitable<I>, <I as Interner>::Abi: TypeVisitable<I>,

Source§

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

Source§

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

Source§

### impl<I> TypeVisitable<I> for GenSig<I>
where I: Interner, <I as Interner>::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>
where I: Interner, AliasTerm<I>: TypeVisitable<I>, <I as Interner>::Term: TypeVisitable<I>,

Source§

### impl<I> TypeVisitable<I> for OpaqueTypeKey<I>
where I: Interner, <I as Interner>::LocalDefId: TypeVisitable<I>, <I as Interner>::GenericArgs: TypeVisitable<I>,

Source§

### impl<I> TypeVisitable<I> for ProjectionPredicate<I>
where I: Interner, AliasTerm<I>: TypeVisitable<I>, <I as Interner>::Term: TypeVisitable<I>,

Source§

### impl<I> TypeVisitable<I> for SubtypePredicate<I>
where I: Interner, <I as Interner>::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>
where I: Interner, <I as Interner>::TraitId: TypeVisitable<I>, <I as Interner>::GenericArgs: TypeVisitable<I>,

Source§

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

Source§

### impl<I> TypeVisitable<I> for rustc_infer::infer::canonical::ir::UnevaluatedConst<I>
where I: Interner, <I as Interner>::UnevaluatedConstId: TypeVisitable<I>, <I as Interner>::GenericArgs: TypeVisitable<I>,

Source§

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

Source§

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

Source§

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

Source§

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

Source§

### impl<I, P> TypeVisitable<I> for QueryInput<I, P>
where I: Interner, Goal<I, P>: TypeVisitable<I>, <I as Interner>::PredefinedOpaques: TypeVisitable<I>,

Source§

### impl<I, T> TypeVisitable<I> for State<I, T>
where I: Interner, CanonicalVarValues<I>: TypeVisitable<I>, T: TypeVisitable<I>,

Source§

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

Source§

### impl<I, T> TypeVisitable<I> for Placeholder<I, T>
where I: Interner, T: TypeVisitable<I>,

Source§

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