error[E0277]: `Cell` cannot be shared between threads safely --> $DIR/not-send-sync.rs:16:5 | LL | assert_send(|| { | ^^^^^^^^^^^ `Cell` cannot be shared between threads safely | = help: the trait `Sync` is not implemented for `Cell` = note: required because of the requirements on the impl of `Send` for `&Cell` note: required because it's used within this generator --> $DIR/not-send-sync.rs:16:17 | LL | assert_send(|| { | ^^ note: required by a bound in `assert_send` --> $DIR/not-send-sync.rs:7:23 | LL | fn assert_send(_: T) {} | ^^^^ required by this bound in `assert_send` error: generator cannot be shared between threads safely --> $DIR/not-send-sync.rs:9:5 | LL | assert_sync(|| { | ^^^^^^^^^^^ generator is not `Sync` | = help: within `[generator@$DIR/not-send-sync.rs:9:17: 9:19]`, the trait `Sync` is not implemented for `Cell` note: generator is not `Sync` as this value is used across a yield --> $DIR/not-send-sync.rs:12:9 | LL | let a = Cell::new(2); | - has type `Cell` which is not `Sync` LL | yield; | ^^^^^ yield occurs here, with `a` maybe used later LL | }); | - `a` is later dropped here note: required by a bound in `assert_sync` --> $DIR/not-send-sync.rs:6:23 | LL | fn assert_sync(_: T) {} | ^^^^ required by this bound in `assert_sync` error: aborting due to 2 previous errors For more information about this error, try `rustc --explain E0277`.