//! This module contains impls of `Visit` for those types that //! introduce binders. //! //! The more interesting impls of `Visit` remain in the `visit` module. use crate::interner::HasInterner; use crate::{Binders, Canonical, ControlFlow, DebruijnIndex, FnPointer, Interner, Visit, Visitor}; impl Visit for FnPointer { fn visit_with( &self, visitor: &mut dyn Visitor, outer_binder: DebruijnIndex, ) -> ControlFlow { self.substitution .visit_with(visitor, outer_binder.shifted_in()) } } impl Visit for Binders where T: HasInterner + Visit, { fn visit_with( &self, visitor: &mut dyn Visitor, outer_binder: DebruijnIndex, ) -> ControlFlow { self.value.visit_with(visitor, outer_binder.shifted_in()) } } impl Visit for Canonical where I: Interner, T: HasInterner + Visit, { fn visit_with( &self, visitor: &mut dyn Visitor, outer_binder: DebruijnIndex, ) -> ControlFlow { self.value.visit_with(visitor, outer_binder.shifted_in()) } }