error[E0277]: `Cell` cannot be shared between threads safely --> $DIR/generator-print-verbose-2.rs:19: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 `&'_#4r Cell` = note: required because it appears within the type `[main::{closure#1} upvar_tys=(&'_#4r Cell) _#17t]` note: required by a bound in `assert_send` --> $DIR/generator-print-verbose-2.rs:10:23 | LL | fn assert_send(_: T) {} | ^^^^ required by this bound in `assert_send` error: generator cannot be shared between threads safely --> $DIR/generator-print-verbose-2.rs:12:5 | LL | assert_sync(|| { | ^^^^^^^^^^^ generator is not `Sync` | = help: within `[main::{closure#0} upvar_tys=() {Cell, ()}]`, the trait `Sync` is not implemented for `Cell` note: generator is not `Sync` as this value is used across a yield --> $DIR/generator-print-verbose-2.rs:15: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/generator-print-verbose-2.rs:9: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`.