Diffstat (limited to 'src/walk/walkers/core/value.rs')
| -rw-r--r-- | src/walk/walkers/core/value.rs | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/src/walk/walkers/core/value.rs b/src/walk/walkers/core/value.rs index 69fb912..69aa04c 100644 --- a/src/walk/walkers/core/value.rs +++ b/src/walk/walkers/core/value.rs @@ -1,7 +1,8 @@ use effectful::{ bound::Dynamic, - effective::Effective, - environment::{DynBind, Environment, NativeForm}, + effective::{Effective, Canonical}, + environment::{Environment}, + DynBind, SendSync, }; @@ -53,10 +54,10 @@ where type Output = (); #[inline(always)] - fn walk<'b: 'c, 'c>( + fn walk<'b: 'c, 'd: 'c, 'c>( self, - visitor: DynVisitor<'b, 'ctx, E>, - ) -> NativeForm<'c, Result<Self::Output, Self::Error>, E> { + visitor: DynVisitor<'b, 'd, 'ctx, E>, + ) -> Canonical<'c, Result<Self::Output, Self::Error>, E> { // Attempt to visit using the value protocol. visit_value::<OwnedStatic<T>, E>(visitor, OwnedStatic(self.0 .0)) .map((), |_, _| Ok(())) @@ -89,13 +90,13 @@ where type Output = Dynamic<&'ctx T>; #[inline(always)] - fn walk<'b: 'c, 'c>( + fn walk<'b: 'c, 'd: 'c, 'c>( self, - visitor: DynVisitor<'b, 'ctx, E>, - ) -> NativeForm<'c, Result<Self::Output, Self::Error>, E> { + visitor: DynVisitor<'b, 'd, 'ctx, E>, + ) -> Canonical<'c, Result<Self::Output, Self::Error>, E> { // Attempt to visit using the value protocol. E::value((self, visitor)) - .update((), |_, (this, visitor)| { + .update_map((), |_, (this, visitor)| { visit_value::<_, E>(visitor.cast(), BorrowedStatic(this.0 .0)) .map((), |_, x| VisitResult::unit_skipped(x)) .cast() |