[][src]Trait chalk_ir::visit::Visit

pub trait Visit<I: Interner>: Debug {
    fn visit_with<'i, R: VisitResult>(
        &self,
        visitor: &mut dyn Visitor<'i, I, Result = R>,
        outer_binder: DebruijnIndex
    ) -> R
    where
        I: 'i
; }

Applies the given visitor to a value, producing a visited result of type Visitor::Result.

Required methods

fn visit_with<'i, R: VisitResult>(
    &self,
    visitor: &mut dyn Visitor<'i, I, Result = R>,
    outer_binder: DebruijnIndex
) -> R 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.

Loading content...

Implementations on Foreign Types

impl<T: Visit<I>, I: Interner, '_> Visit<I> for &'_ T[src]

impl<T: Visit<I>, I: Interner> Visit<I> for Vec<T>[src]

impl<T: Visit<I>, I: Interner, '_> Visit<I> for &'_ [T][src]

impl<T: Visit<I>, I: Interner> Visit<I> for Box<T>[src]

impl<T: Visit<I>, I: Interner> Visit<I> for Arc<T>[src]

impl<A: Visit<I>, B: Visit<I>, I: Interner> Visit<I> for (A, B)[src]

impl<A: Visit<I>, B: Visit<I>, C: Visit<I>, I: Interner> Visit<I> for (A, B, C)[src]

impl<A: Visit<I>, B: Visit<I>, C: Visit<I>, D: Visit<I>, I: Interner> Visit<I> for (A, B, C, D)[src]

impl<A: Visit<I>, B: Visit<I>, C: Visit<I>, D: Visit<I>, E: Visit<I>, I: Interner> Visit<I> for (A, B, C, D, E)[src]

impl<T: Visit<I>, I: Interner> Visit<I> for Option<T>[src]

impl<I: Interner> Visit<I> for bool[src]

impl<I: Interner> Visit<I> for usize[src]

impl<I: Interner> Visit<I> for ()[src]

impl<I: Interner> Visit<I> for PhantomData<I>[src]

Loading content...

Implementors

impl<G: HasInterner, _I> Visit<_I> for InEnvironment<G> where
    _I: Interner,
    G: HasInterner<Interner = _I>,
    G: Visit<_I>, 
[src]

impl<I, T> Visit<I> for Canonical<T> where
    I: Interner,
    T: HasInterner<Interner = I> + Visit<I>, 
[src]

impl<I: Interner> Visit<I> for AliasTy<I>[src]

impl<I: Interner> Visit<I> for ClausePriority[src]

impl<I: Interner> Visit<I> for Constraint<I>[src]

impl<I: Interner> Visit<I> for DomainGoal<I>[src]

impl<I: Interner> Visit<I> for FloatTy[src]

impl<I: Interner> Visit<I> for FromEnv<I>[src]

impl<I: Interner> Visit<I> for GenericArgData<I>[src]

impl<I: Interner> Visit<I> for GoalData<I>[src]

impl<I: Interner> Visit<I> for IntTy[src]

impl<I: Interner> Visit<I> for Mutability[src]

impl<I: Interner> Visit<I> for QuantifierKind[src]

impl<I: Interner> Visit<I> for Safety[src]

impl<I: Interner> Visit<I> for Scalar[src]

impl<I: Interner> Visit<I> for TypeName<I>[src]

impl<I: Interner> Visit<I> for UintTy[src]

impl<I: Interner> Visit<I> for WellFormed<I>[src]

impl<I: Interner> Visit<I> for WhereClause<I>[src]

impl<I: Interner> Visit<I> for AdtId<I>[src]

impl<I: Interner> Visit<I> for AliasEq<I>[src]

impl<I: Interner> Visit<I> for AnswerSubst<I>[src]

impl<I: Interner> Visit<I> for ApplicationTy<I>[src]

impl<I: Interner> Visit<I> for AssocTypeId<I>[src]

impl<I: Interner> Visit<I> for ClosureId<I>[src]

impl<I: Interner> Visit<I> for Const<I>[src]

impl<I: Interner> Visit<I> for ConstrainedSubst<I>[src]

impl<I: Interner> Visit<I> for Constraints<I>[src]

impl<I: Interner> Visit<I> for DebruijnIndex[src]

impl<I: Interner> Visit<I> for DynTy<I>[src]

impl<I: Interner> Visit<I> for Environment<I>[src]

impl<I: Interner> Visit<I> for EqGoal<I>[src]

impl<I: Interner> Visit<I> for FnDefId<I>[src]

impl<I: Interner> Visit<I> for FnPointer<I>[src]

impl<I: Interner> Visit<I> for ForeignDefId<I>[src]

impl<I: Interner> Visit<I> for GeneratorId<I>[src]

impl<I: Interner> Visit<I> for GenericArg<I>[src]

impl<I: Interner> Visit<I> for Goal<I>[src]

impl<I: Interner> Visit<I> for Goals<I>[src]

impl<I: Interner> Visit<I> for ImplId<I>[src]

impl<I: Interner> Visit<I> for Lifetime<I>[src]

impl<I: Interner> Visit<I> for LifetimeOutlives<I>[src]

impl<I: Interner> Visit<I> for Normalize<I>[src]

impl<I: Interner> Visit<I> for OpaqueTy<I>[src]

impl<I: Interner> Visit<I> for OpaqueTyId<I>[src]

impl<I: Interner> Visit<I> for PlaceholderIndex[src]

impl<I: Interner> Visit<I> for ProgramClause<I>[src]

impl<I: Interner> Visit<I> for ProgramClauseImplication<I>[src]

impl<I: Interner> Visit<I> for ProgramClauses<I>[src]

impl<I: Interner> Visit<I> for ProjectionTy<I>[src]

impl<I: Interner> Visit<I> for QuantifiedWhereClauses<I>[src]

impl<I: Interner> Visit<I> for Substitution<I>[src]

impl<I: Interner> Visit<I> for TraitId<I>[src]

impl<I: Interner> Visit<I> for TraitRef<I>[src]

impl<I: Interner> Visit<I> for Ty<I>[src]

"visiting" a type invokes the visit_ty method on the visitor; this usually (in turn) invokes super_visit_ty to visit the individual parts.

impl<I: Interner> Visit<I> for TypeOutlives<I>[src]

impl<I: Interner> Visit<I> for UniverseIndex[src]

impl<T, I: Interner> Visit<I> for Binders<T> where
    T: HasInterner + Visit<I>, 
[src]

Loading content...