1error[E0277]: `*const cxx::void` cannot be sent between threads safely 2 --> tests/ui/opaque_autotraits.rs:13:19 3 | 413 | assert_send::<ffi::Opaque>(); 5 | ^^^^^^^^^^^ `*const cxx::void` cannot be sent between threads safely 6 | 7 = help: within `ffi::Opaque`, the trait `Send` is not implemented for `*const cxx::void` 8 = note: required because it appears within the type `[*const void; 0]` 9note: required because it appears within the type `Opaque` 10 --> src/opaque.rs 11 | 12 | pub struct Opaque { 13 | ^^^^^^ 14note: required because it appears within the type `Opaque` 15 --> tests/ui/opaque_autotraits.rs:4:14 16 | 174 | type Opaque; 18 | ^^^^^^ 19note: required by a bound in `assert_send` 20 --> tests/ui/opaque_autotraits.rs:8:19 21 | 228 | fn assert_send<T: Send>() {} 23 | ^^^^ required by this bound in `assert_send` 24 25error[E0277]: `*const cxx::void` cannot be shared between threads safely 26 --> tests/ui/opaque_autotraits.rs:14:19 27 | 2814 | assert_sync::<ffi::Opaque>(); 29 | ^^^^^^^^^^^ `*const cxx::void` cannot be shared between threads safely 30 | 31 = help: within `ffi::Opaque`, the trait `Sync` is not implemented for `*const cxx::void` 32 = note: required because it appears within the type `[*const void; 0]` 33note: required because it appears within the type `Opaque` 34 --> src/opaque.rs 35 | 36 | pub struct Opaque { 37 | ^^^^^^ 38note: required because it appears within the type `Opaque` 39 --> tests/ui/opaque_autotraits.rs:4:14 40 | 414 | type Opaque; 42 | ^^^^^^ 43note: required by a bound in `assert_sync` 44 --> tests/ui/opaque_autotraits.rs:9:19 45 | 469 | fn assert_sync<T: Sync>() {} 47 | ^^^^ required by this bound in `assert_sync` 48 49error[E0277]: `PhantomPinned` cannot be unpinned 50 --> tests/ui/opaque_autotraits.rs:15:20 51 | 5215 | assert_unpin::<ffi::Opaque>(); 53 | ^^^^^^^^^^^ within `ffi::Opaque`, the trait `Unpin` is not implemented for `PhantomPinned` 54 | 55 = note: consider using the `pin!` macro 56 consider using `Box::pin` if you need to access the pinned value outside of the current scope 57note: required because it appears within the type `PhantomData<PhantomPinned>` 58 --> $RUST/core/src/marker.rs 59 | 60 | pub struct PhantomData<T: ?Sized>; 61 | ^^^^^^^^^^^ 62note: required because it appears within the type `Opaque` 63 --> src/opaque.rs 64 | 65 | pub struct Opaque { 66 | ^^^^^^ 67note: required because it appears within the type `Opaque` 68 --> tests/ui/opaque_autotraits.rs:4:14 69 | 704 | type Opaque; 71 | ^^^^^^ 72note: required by a bound in `assert_unpin` 73 --> tests/ui/opaque_autotraits.rs:10:20 74 | 7510 | fn assert_unpin<T: Unpin>() {} 76 | ^^^^^ required by this bound in `assert_unpin` 77