Trait chalk_ir::visit::Visit [−][src]
pub trait Visit<I: Interner>: Debug {
fn visit_with<'i, B>(
&self,
visitor: &mut dyn Visitor<'i, I, BreakTy = B>,
outer_binder: DebruijnIndex
) -> ControlFlow<B>
where
I: 'i;
}
Expand description
Applies the given visitor
to a value, producing a visited result
of type Visitor::Result
.
Required methods
fn visit_with<'i, B>(
&self,
visitor: &mut dyn Visitor<'i, I, BreakTy = B>,
outer_binder: DebruijnIndex
) -> ControlFlow<B> where
I: 'i,
fn visit_with<'i, B>(
&self,
visitor: &mut dyn Visitor<'i, I, BreakTy = B>,
outer_binder: DebruijnIndex
) -> ControlFlow<B> where
I: 'i,
Apply the given visitor visitor
to self
; binders
is the
number of binders that are in scope when beginning the
visitor. Typically binders
starts as 0, but is adjusted when
we encounter Binders<T>
in the IR or other similar
constructs.
Implementations on Foreign Types
fn visit_with<'i, B>(
&self,
visitor: &mut dyn Visitor<'i, I, BreakTy = B>,
outer_binder: DebruijnIndex
) -> ControlFlow<B> where
I: 'i,
fn visit_with<'i, B>(
&self,
visitor: &mut dyn Visitor<'i, I, BreakTy = B>,
outer_binder: DebruijnIndex
) -> ControlFlow<B> where
I: 'i,
fn visit_with<'i, B>(
&self,
visitor: &mut dyn Visitor<'i, I, BreakTy = B>,
outer_binder: DebruijnIndex
) -> ControlFlow<B> where
I: 'i,
fn visit_with<'i, B>(
&self,
visitor: &mut dyn Visitor<'i, I, BreakTy = B>,
outer_binder: DebruijnIndex
) -> ControlFlow<B> where
I: 'i,
fn visit_with<'i, B>(
&self,
visitor: &mut dyn Visitor<'i, I, BreakTy = B>,
outer_binder: DebruijnIndex
) -> ControlFlow<B> where
I: 'i,
fn visit_with<'i, BT>(
&self,
visitor: &mut dyn Visitor<'i, I, BreakTy = BT>,
outer_binder: DebruijnIndex
) -> ControlFlow<BT> where
I: 'i,
fn visit_with<'i, BT>(
&self,
visitor: &mut dyn Visitor<'i, I, BreakTy = BT>,
outer_binder: DebruijnIndex
) -> ControlFlow<BT> where
I: 'i,
fn visit_with<'i, BT>(
&self,
visitor: &mut dyn Visitor<'i, I, BreakTy = BT>,
outer_binder: DebruijnIndex
) -> ControlFlow<BT> where
I: 'i,
fn visit_with<'i, BT>(
&self,
visitor: &mut dyn Visitor<'i, I, BreakTy = BT>,
outer_binder: DebruijnIndex
) -> ControlFlow<BT> where
I: 'i,
fn visit_with<'i, B>(
&self,
visitor: &mut dyn Visitor<'i, I, BreakTy = B>,
outer_binder: DebruijnIndex
) -> ControlFlow<B> where
I: 'i,
fn visit_with<'i, B>(
&self,
_visitor: &mut dyn Visitor<'i, I, BreakTy = B>,
_outer_binder: DebruijnIndex
) -> ControlFlow<B> where
I: 'i,
fn visit_with<'i, B>(
&self,
_visitor: &mut dyn Visitor<'i, I, BreakTy = B>,
_outer_binder: DebruijnIndex
) -> ControlFlow<B> where
I: 'i,
fn visit_with<'i, B>(
&self,
_visitor: &mut dyn Visitor<'i, I, BreakTy = B>,
_outer_binder: DebruijnIndex
) -> ControlFlow<B> where
I: 'i,
fn visit_with<'i, B>(
&self,
_visitor: &mut dyn Visitor<'i, I, BreakTy = B>,
_outer_binder: DebruijnIndex
) -> ControlFlow<B> where
I: 'i,
Implementors
impl<G: HasInterner, _I> Visit<_I> for InEnvironment<G> where
_I: Interner,
G: HasInterner<Interner = _I>,
G: Visit<_I>,
impl<I, T> Visit<I> for Canonical<T> where
I: Interner,
T: HasInterner<Interner = I> + Visit<I>,
“visiting” a type invokes the visit_ty
method on the visitor; this
usually (in turn) invokes super_visit_ty
to visit the individual
parts.