blob: c1f400b33049ff37ebea3d9a57227e7afaa900a3 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
#![feature(box_syntax)]
use std::cell::RefCell;
use std::rc::Rc;
trait Foo {
fn set(&mut self, v: Rc<RefCell<A>>);
}
struct B {
v: Option<Rc<RefCell<A>>>
}
impl Foo for B {
fn set(&mut self, v: Rc<RefCell<A>>)
{
self.v = Some(v);
}
}
struct A {
v: Box<dyn Foo + Send>,
}
fn main() {
let a = A {v: box B{v: None} as Box<dyn Foo + Send>};
//~^ ERROR `Rc<RefCell<A>>` cannot be sent between threads safely
}
|