error[E0277]: `Rc` cannot be shared between threads safely --> $DIR/issue-40827.rs:14:7 | LL | f(Foo(Arc::new(Bar::B(None)))); | - ^^^^^^^^^^^^^^^^^^^^^^^^^^^ `Rc` cannot be shared between threads safely | | | required by a bound introduced by this call | = help: within `Bar`, the trait `Sync` is not implemented for `Rc`, which is required by `Foo: Send` note: required because it appears within the type `Bar` --> $DIR/issue-40827.rs:6:6 | LL | enum Bar { | ^^^ = note: required for `Arc` to implement `Send` note: required because it appears within the type `Foo` --> $DIR/issue-40827.rs:4:8 | LL | struct Foo(Arc); | ^^^ note: required by a bound in `f` --> $DIR/issue-40827.rs:11:9 | LL | fn f(_: T) {} | ^^^^ required by this bound in `f` error[E0277]: `Rc` cannot be sent between threads safely --> $DIR/issue-40827.rs:14:7 | LL | f(Foo(Arc::new(Bar::B(None)))); | - ^^^^^^^^^^^^^^^^^^^^^^^^^^^ `Rc` cannot be sent between threads safely | | | required by a bound introduced by this call | = help: within `Bar`, the trait `Send` is not implemented for `Rc`, which is required by `Foo: Send` note: required because it appears within the type `Bar` --> $DIR/issue-40827.rs:6:6 | LL | enum Bar { | ^^^ = note: required for `Arc` to implement `Send` note: required because it appears within the type `Foo` --> $DIR/issue-40827.rs:4:8 | LL | struct Foo(Arc); | ^^^ note: required by a bound in `f` --> $DIR/issue-40827.rs:11:9 | LL | fn f(_: T) {} | ^^^^ required by this bound in `f` error: aborting due to 2 previous errors For more information about this error, try `rustc --explain E0277`.