rustc_infer::infer::canonical::ir::visit

Trait TypeVisitor

Source
pub trait TypeVisitor<I>: Sized
where I: Interner,
{ type Result: VisitorResult = (); // Provided methods fn visit_binder<T>(&mut self, t: &Binder<I, T>) -> Self::Result where T: TypeVisitable<I> { ... } fn visit_ty(&mut self, t: <I as Interner>::Ty) -> Self::Result { ... } fn visit_region(&mut self, r: <I as Interner>::Region) -> Self::Result { ... } fn visit_const(&mut self, c: <I as Interner>::Const) -> Self::Result { ... } fn visit_predicate(&mut self, p: <I as Interner>::Predicate) -> Self::Result { ... } fn visit_clauses(&mut self, p: <I as Interner>::Clauses) -> Self::Result { ... } fn visit_error( &mut self, _guar: <I as Interner>::ErrorGuaranteed, ) -> Self::Result { ... } }
Expand description

This trait is implemented for every visiting traversal. There is a visit method defined for every type of interest. Each such method has a default that recurses into the type’s fields in a non-custom fashion.

Provided Associated Types§

Provided Methods§

Source

fn visit_binder<T>(&mut self, t: &Binder<I, T>) -> Self::Result
where T: TypeVisitable<I>,

Source

fn visit_ty(&mut self, t: <I as Interner>::Ty) -> Self::Result

Source

fn visit_region(&mut self, r: <I as Interner>::Region) -> Self::Result

Source

fn visit_const(&mut self, c: <I as Interner>::Const) -> Self::Result

Source

fn visit_predicate(&mut self, p: <I as Interner>::Predicate) -> Self::Result

Source

fn visit_clauses(&mut self, p: <I as Interner>::Clauses) -> Self::Result

Source

fn visit_error( &mut self, _guar: <I as Interner>::ErrorGuaranteed, ) -> Self::Result

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> TypeVisitor<TyCtxt<'tcx>> for IsSuggestableVisitor<'tcx>

Source§

type Result = ControlFlow<()>

Source§

fn visit_ty(&mut self, t: Ty<'tcx>) -> ControlFlow<()>

Source§

fn visit_const(&mut self, c: Const<'tcx>) -> ControlFlow<()>

Source§

impl<'tcx> TypeVisitor<TyCtxt<'tcx>> for MaxUniverse

Source§

fn visit_ty(&mut self, t: Ty<'tcx>)

Source§

fn visit_const(&mut self, c: Const<'tcx>)

Source§

fn visit_region(&mut self, r: Region<'tcx>)

Implementors§

Source§

impl<'tcx, OP> TypeVisitor<TyCtxt<'tcx>> for FreeRegionsVisitor<'tcx, OP>
where OP: FnMut(Region<'tcx>),

Source§

impl<I> TypeVisitor<I> for ValidateBoundVars<I>
where I: Interner,