error[E0277]: `Rc` cannot be shared between threads safely --> $DIR/issue-40827.rs:14:5 | LL | f(Foo(Arc::new(Bar::B(None)))); | ^ `Rc` cannot be shared between threads safely | = help: within `Bar`, the trait `Sync` is not implemented for `Rc` note: required because it appears within the type `Bar` --> $DIR/issue-40827.rs:6:6 | LL | enum Bar { | ^^^ = note: required because of the requirements on the impl of `Send` for `Arc` 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:5 | LL | f(Foo(Arc::new(Bar::B(None)))); | ^ `Rc` cannot be sent between threads safely | = help: within `Bar`, the trait `Send` is not implemented for `Rc` note: required because it appears within the type `Bar` --> $DIR/issue-40827.rs:6:6 | LL | enum Bar { | ^^^ = note: required because of the requirements on the impl of `Send` for `Arc` 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`.