Diffstat (limited to 'src/walk/walkers/core/array.rs')
| -rw-r--r-- | src/walk/walkers/core/array.rs | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/src/walk/walkers/core/array.rs b/src/walk/walkers/core/array.rs index 571787c..ba85d54 100644 --- a/src/walk/walkers/core/array.rs +++ b/src/walk/walkers/core/array.rs @@ -53,8 +53,11 @@ impl<'ctx, T, const N: usize, W: crate::Walker<'ctx, Effect = SyncEffect> + From #[inline] fn walk<'a>( mut self, - visitor: &'a mut Visitor<'a, 'ctx>, - ) -> ControlFlowFor<'a, Self::Effect, Self::Output, Self::Error> { + visitor: Visitor<'a, 'ctx, Self::Effect>, + ) -> ControlFlowFor<'a, 'ctx, Self::Effect, Self::Output, Self::Error> + where + Self: 'a, + { if let Some(object) = visitor.upcast_mut::<dyn Sequence<'ctx, W::Effect> + '_>() { object.visit(&mut self); } @@ -67,14 +70,14 @@ impl<'ctx, T, const N: usize, W: crate::Walker<'ctx, Effect = SyncEffect> + From } } -impl<'ctx, T, const N: usize, W: crate::Walker<'ctx, Effect = SyncEffect> + From<T>> - SequenceScope<'ctx> for Walker<'ctx, T, N, W> +impl<'a, 'ctx: 'a, T, const N: usize, W: crate::Walker<'ctx, Effect = SyncEffect> + From<T>> + SequenceScope<'a, 'ctx> for Walker<'ctx, T, N, W> { #[inline] - fn next<'a>( + fn next( &'a mut self, - visitor: &'a mut Visitor<'a, 'ctx>, - ) -> ControlFlowFor<'a, W::Effect, Status> { + visitor: Visitor<'a, 'ctx, SyncEffect>, + ) -> ControlFlowFor<'a, 'ctx, W::Effect, Status> { if self.index >= N { return ControlFlow::Continue(Status::Done); } |