#![feature(box_syntax)] use std::cell::RefCell; use std::rc::Rc; trait Foo { fn set(&mut self, v: Rc>); } struct B { v: Option>> } impl Foo for B { fn set(&mut self, v: Rc>) { self.v = Some(v); } } struct A { v: Box, } fn main() { let a = A {v: box B{v: None} as Box}; //~^ ERROR `Rc>` cannot be sent between threads safely }