Diffstat (limited to 'src/walk/walkers/core/int.rs')
| -rw-r--r-- | src/walk/walkers/core/int.rs | 23 |
1 files changed, 12 insertions, 11 deletions
diff --git a/src/walk/walkers/core/int.rs b/src/walk/walkers/core/int.rs index 2416849..4eea290 100644 --- a/src/walk/walkers/core/int.rs +++ b/src/walk/walkers/core/int.rs @@ -1,7 +1,8 @@ use effectful::bound::Dynamic; use effectful::effective::Effective; -use effectful::environment::{DynBind, Environment, NativeForm}; -use effectful::SendSync; +use effectful::environment::{Environment}; +use effectful::effective::{Canonical}; +use effectful::{DynBind, SendSync}; use crate::{ any::AnyTrait, @@ -109,17 +110,17 @@ where type Output = Dynamic<T>; - fn walk<'visitor: 'effect, 'effect>( + fn walk<'visitor: 'effect, 'lt: 'effect, 'effect>( self, - visitor: DynVisitor<'visitor, 'ctx, E>, - ) -> NativeForm<'effect, Result<Self::Output, Self::Error>, E> + visitor: DynVisitor<'visitor, 'lt, 'ctx, E>, + ) -> Canonical<'effect, Result<Self::Output, Self::Error>, E> where Self: 'effect, { let value = self.value; E::value((self, visitor)) - .update((), |_, (this, visitor)| { + .update_map((), |_, (this, visitor)| { request_hint::<E>(visitor.cast(), DynWalker(this)) .map((), |_, x| VisitResult::unit_skipped(x)) .cast() @@ -273,7 +274,7 @@ impl<T> Integer for T where { } -impl<'ctx, T, E> AnyTrait<'ctx> for IntegerWalker<T, E> +impl<'lt, 'ctx: 'lt, T, E> AnyTrait<'lt, 'ctx> for IntegerWalker<T, E> where T: Integer, E: Environment, @@ -329,11 +330,11 @@ macro_rules! impl_hints { Dynamic<OwnedStatic<$type>>: DynBind<E>, for<'a> Dynamic<&'a OwnedStatic<$type>>: DynBind<E> { - fn hint<'this: 'e, 'visitor: 'e, 'hint: 'e, 'e>( + fn hint<'this: 'e, 'visitor: 'e, 'lt: 'e, 'hint: 'e, 'e>( &'this mut self, - visitor: DynVisitorWith<'visitor, 'ctx, type_name::Raised<'static, 'ctx, dyn Value<'ctx, OwnedStatic<$type>, E>>>, + visitor: DynVisitorWith<'visitor, 'lt, 'ctx, type_name::Raised<'static, 'ctx, dyn Value<'ctx, OwnedStatic<$type>, E>>>, _hint: (), - ) -> NativeForm<'e, crate::protocol::visitor::VisitResult, E> + ) -> Canonical<'e, crate::protocol::visitor::VisitResult, E> where 'ctx: 'this + 'visitor + 'hint + 'e, { @@ -349,7 +350,7 @@ macro_rules! impl_hints { fn known<'a>( &'a mut self, _hint: &'a (), - ) -> NativeForm<'a, Result<ValueKnown<'a, OwnedStatic<$type>>, ()>, E> + ) -> Canonical<'a, Result<ValueKnown<'a, OwnedStatic<$type>>, ()>, E> where ValueKnown<'a, OwnedStatic<$type>>: DynBind<E> { |