Diffstat (limited to 'tests/common/builder.rs')
-rw-r--r--tests/common/builder.rs38
1 files changed, 17 insertions, 21 deletions
diff --git a/tests/common/builder.rs b/tests/common/builder.rs
index 64d77f9..b2bb1ff 100644
--- a/tests/common/builder.rs
+++ b/tests/common/builder.rs
@@ -1,9 +1,6 @@
use core::fmt::{Debug, Display};
use effectful::{
- bound::{Bool, IsSend, IsSync},
- environment::{DynBind, Environment, NativeForm},
- effective::Effective,
- forward_send_sync,
+ bound::{Bool, DynamicShim, IsSend, IsSync}, effective::Effective, environment::{DynBind, Environment, NativeForm}, forward_send_sync, SendSync
};
use mockall::mock;
use treaty::{
@@ -14,11 +11,11 @@ use treaty::{
use crate::common::{ContextLock, StaticTypeMap};
-use self::__mock_MockBuilder::__from_seed::Context;
-
use super::ContextGuard;
-#[derive(Debug)]
+use crate::common::builder::__mock_MockBuilder::__from_seed::Context;
+
+#[derive(Debug, SendSync)]
pub struct EmptyError;
impl Display for EmptyError {
@@ -32,21 +29,12 @@ mock! {
pub fn from_seed(seed: Seed) -> Self;
pub fn build(self) -> Result<Value, Error>;
- pub fn traits(&self, id: TypeNameId) -> &Option<Box<dyn for<'ctx> AnyTrait<'ctx, E>>>;
- pub fn traits_mut(&mut self, id: TypeNameId) -> &mut Option<Box<dyn for<'ctx> AnyTrait<'ctx, E>>>;
+ pub fn traits(&self, id: TypeNameId) -> &Option<Box<DynamicShim<dyn for<'ctx> AnyTrait<'ctx, E>>>>;
+ pub fn traits_mut(&mut self, id: TypeNameId) -> &mut Option<Box<DynamicShim<dyn for<'ctx> AnyTrait<'ctx, E>>>>;
}
}
-// forward_send_sync!({Seed: ('static), Value: ('static), Error: ('static)} {} {E: (Environment)} MockBuilder<Seed, Value, Error, E>);
-
-unsafe impl<Seed: 'static, Value: 'static, Error: 'static, E: Environment, F: Bool> IsSend<F>
- for MockBuilder<Seed, Value, Error, E>
-{
-}
-unsafe impl<Seed: 'static, Value: 'static, Error: 'static, E: Environment, F: Bool> IsSync<F>
- for MockBuilder<Seed, Value, Error, E>
-{
-}
+forward_send_sync!({Seed: ('static), Value: ('static), Error: ('static)} {} {E: (Environment)} MockBuilder<Seed, Value, Error, E>);
impl<Seed, Value, Error: Display + Debug, E: Environment> BuilderTypes<E>
for MockBuilder<Seed, Value, Error, E>
@@ -103,6 +91,10 @@ impl<
impl<'ctx, Seed, Value, Error: Display + Debug, E: Environment> AsVisitor<'ctx, E>
for MockBuilder<Seed, Value, Error, E>
+where
+ Seed: DynBind<E>,
+ Value: DynBind<E>,
+ Error: DynBind<E>,
{
fn as_visitor<'a>(&'a mut self) -> DynVisitor<'a, 'ctx, E>
where
@@ -114,6 +106,10 @@ impl<'ctx, Seed, Value, Error: Display + Debug, E: Environment> AsVisitor<'ctx,
impl<'ctx, Seed, Value, Error, E: Environment> AnyTrait<'ctx, E>
for MockBuilder<Seed, Value, Error, E>
+where
+ Seed: DynBind<E>,
+ Value: DynBind<E>,
+ Error: DynBind<E>,
{
fn upcast_to_id<'a>(
&'a self,
@@ -123,7 +119,7 @@ impl<'ctx, Seed, Value, Error, E: Environment> AnyTrait<'ctx, E>
'ctx: 'a,
{
// Find the first trait handler that wants to upcast.
- self.traits(id).as_ref().and_then(|t| t.upcast_to_id(id))
+ self.traits(id).as_ref().and_then(|t| t.0.upcast_to_id(id))
}
fn upcast_to_id_mut<'a>(
@@ -136,7 +132,7 @@ impl<'ctx, Seed, Value, Error, E: Environment> AnyTrait<'ctx, E>
// Find the first trait handler that wants to upcast.
self.traits_mut(id)
.as_mut()
- .and_then(|t| t.upcast_to_id_mut(id))
+ .and_then(|t| t.0.upcast_to_id_mut(id))
}
type Available = () where Self: Sized;