pub trait TypeVisitor<I: Interner>: Sized {
    type BreakTy = !;

    // Provided methods
    fn visit_binder<T: TypeVisitable<I>>(
        &mut self,
        t: &I::Binder<T>
    ) -> ControlFlow<Self::BreakTy>
       where I::Binder<T>: TypeSuperVisitable<I> { ... }
    fn visit_ty(&mut self, t: I::Ty) -> ControlFlow<Self::BreakTy>
       where I::Ty: TypeSuperVisitable<I> { ... }
    fn visit_region(&mut self, _r: I::Region) -> ControlFlow<Self::BreakTy> { ... }
    fn visit_const(&mut self, c: I::Const) -> ControlFlow<Self::BreakTy>
       where I::Const: TypeSuperVisitable<I> { ... }
    fn visit_predicate(&mut self, p: I::Predicate) -> ControlFlow<Self::BreakTy>
       where I::Predicate: TypeSuperVisitable<I> { ... }
}
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: TypeVisitable<I>>( &mut self, t: &I::Binder<T> ) -> ControlFlow<Self::BreakTy>where I::Binder<T>: TypeSuperVisitable<I>,

source

fn visit_ty(&mut self, t: I::Ty) -> ControlFlow<Self::BreakTy>where I::Ty: TypeSuperVisitable<I>,

source

fn visit_region(&mut self, _r: I::Region) -> ControlFlow<Self::BreakTy>

source

fn visit_const(&mut self, c: I::Const) -> ControlFlow<Self::BreakTy>where I::Const: TypeSuperVisitable<I>,

source

fn visit_predicate(&mut self, p: I::Predicate) -> ControlFlow<Self::BreakTy>where I::Predicate: TypeSuperVisitable<I>,

Implementors§