error[E0277]: `impl Sync` cannot be sent between threads safely --> $DIR/restrict-type-argument.rs:4:13 | LL | fn is_send(val: T) {} | ---- required by this bound in `is_send` ... LL | is_send(val); | ^^^ `impl Sync` cannot be sent between threads safely | help: consider further restricting this bound | LL | fn use_impl_sync(val: impl Sync + std::marker::Send) { | ^^^^^^^^^^^^^^^^^^^ error[E0277]: `S` cannot be sent between threads safely --> $DIR/restrict-type-argument.rs:8:13 | LL | fn is_send(val: T) {} | ---- required by this bound in `is_send` ... LL | is_send(val); | ^^^ `S` cannot be sent between threads safely | help: consider further restricting this bound | LL | fn use_where(val: S) where S: Sync + std::marker::Send { | ^^^^^^^^^^^^^^^^^^^ error[E0277]: `S` cannot be sent between threads safely --> $DIR/restrict-type-argument.rs:12:13 | LL | fn is_send(val: T) {} | ---- required by this bound in `is_send` ... LL | is_send(val); | ^^^ `S` cannot be sent between threads safely | help: consider further restricting this bound | LL | fn use_bound(val: S) { | ^^^^^^^^^^^^^^^^^^^ error[E0277]: `S` cannot be sent between threads safely --> $DIR/restrict-type-argument.rs:20:13 | LL | fn is_send(val: T) {} | ---- required by this bound in `is_send` ... LL | is_send(val); | ^^^ `S` cannot be sent between threads safely | help: consider further restricting this bound | LL | Sync + std::marker::Send | ^^^^^^^^^^^^^^^^^^^ error[E0277]: `S` cannot be sent between threads safely --> $DIR/restrict-type-argument.rs:24:13 | LL | fn is_send(val: T) {} | ---- required by this bound in `is_send` ... LL | is_send(val); | ^^^ `S` cannot be sent between threads safely | help: consider further restricting this bound | LL | fn use_bound_and_where(val: S) where S: std::fmt::Debug + std::marker::Send { | ^^^^^^^^^^^^^^^^^^^ error[E0277]: `S` cannot be sent between threads safely --> $DIR/restrict-type-argument.rs:28:13 | LL | fn is_send(val: T) {} | ---- required by this bound in `is_send` ... LL | is_send(val); | ^^^ `S` cannot be sent between threads safely | help: consider restricting type parameter `S` | LL | fn use_unbound(val: S) { | ^^^^^^^^^^^^^^^^^^^ error: aborting due to 6 previous errors For more information about this error, try `rustc --explain E0277`.