Diffstat (limited to 'src/any.rs')
| -rw-r--r-- | src/any.rs | 8 |
1 files changed, 5 insertions, 3 deletions
@@ -100,7 +100,7 @@ higher_ranked_type! { /// /// // Cast to be a AnyTrait trait object. /// // Now we don't know the type. -/// let anything: &(dyn AnyTrait<'_> + Send) = &my_num; +/// let anything: &(dyn AnyTrait<'_> + Send + Sync) = &my_num; /// /// // We can still upcast to an impl of ToNum. /// let to_num_object: &dyn ToNum = anything.upcast::<DynToNum>().unwrap(); @@ -173,7 +173,7 @@ pub trait AnyTrait<'ctx> { 'ctx: 'a; } -impl<'b, 'ctx: 'b> dyn AnyTrait<'ctx> + Send + 'b { +impl<'b, 'ctx: 'b> dyn AnyTrait<'ctx> + Send + Sync + 'b { /// Upcast a borrow to the given trait object type. /// /// This should be used instead of [`upcast_to_id`][AnyTrait::upcast_to_id] @@ -407,7 +407,9 @@ mod test { let z = 42; let x = X(&z); - let y = (&x as &(dyn AnyTrait<'_> + Send)).upcast::<DynZ>().unwrap(); + let y = (&x as &(dyn AnyTrait<'_> + Send + Sync)) + .upcast::<DynZ>() + .unwrap(); assert_eq!(y.get(), 42); } |