error[E0308]: mismatched types --> $DIR/transmute_mut.rs:17:36 | 17 | const DST_NOT_A_REFERENCE: usize = transmute_mut!(&mut 0u8); | ^^^^^^^^^^^^^^^^^^^^^^^^ expected `usize`, found `&mut _` | = note: expected type `usize` found mutable reference `&mut _` = note: this error originates in the macro `transmute_mut` (in Nightly builds, run with -Z macro-backtrace for more info) error[E0308]: mismatched types --> $DIR/transmute_mut.rs:17:36 | 17 | const DST_NOT_A_REFERENCE: usize = transmute_mut!(&mut 0u8); | ^^^^^^^^^^^^^^^^^^^^^^^^ expected `usize`, found `&mut _` | = note: expected type `usize` found mutable reference `&mut _` = note: this error originates in the macro `transmute_mut` (in Nightly builds, run with -Z macro-backtrace for more info) error[E0277]: the trait bound `DstA: FromBytes` is not satisfied --> $DIR/transmute_mut.rs:30:39 | 30 | const DST_NOT_FROM_BYTES: &mut DstA = transmute_mut!(&mut SrcA); | ^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound | help: the trait `FromBytes` is not implemented for `DstA` --> $DIR/transmute_mut.rs:27:1 | 27 | struct DstA; | ^^^^^^^^^^^ = note: Consider adding `#[derive(FromBytes)]` to `DstA` = help: the following other types implement trait `FromBytes`: () (A, B) (A, B, C) (A, B, C, D) (A, B, C, D, E) (A, B, C, D, E, F) (A, B, C, D, E, F, G) (A, B, C, D, E, F, G, H) and 85 others note: required by a bound in `zerocopy::util::macro_util::Wrap::<&'a mut Src, &'a mut Dst>::transmute_mut` --> src/util/macro_util.rs:806:14 | 803 | pub fn transmute_mut(self) -> &'a mut Dst | ------------- required by a bound in this associated function ... 806 | Dst: FromBytes + IntoBytes, | ^^^^^^^^^ required by this bound in `Wrap::<&mut Src, &mut Dst>::transmute_mut` = note: this error originates in the macro `transmute_mut` (in Nightly builds, run with -Z macro-backtrace for more info) error[E0277]: the trait bound `DstB: IntoBytes` is not satisfied --> $DIR/transmute_mut.rs:42:37 | 42 | const DST_NOT_AS_BYTES: &mut DstB = transmute_mut!(&mut SrcB); | ^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound | help: the trait `IntoBytes` is not implemented for `DstB` --> $DIR/transmute_mut.rs:39:1 | 39 | struct DstB; | ^^^^^^^^^^^ = note: Consider adding `#[derive(IntoBytes)]` to `DstB` = help: the following other types implement trait `IntoBytes`: () AU16 AtomicBool AtomicI16 AtomicI32 AtomicI64 AtomicI8 AtomicIsize and 74 others note: required by a bound in `zerocopy::util::macro_util::Wrap::<&'a mut Src, &'a mut Dst>::transmute_mut` --> src/util/macro_util.rs:806:26 | 803 | pub fn transmute_mut(self) -> &'a mut Dst | ------------- required by a bound in this associated function ... 806 | Dst: FromBytes + IntoBytes, | ^^^^^^^^^ required by this bound in `Wrap::<&mut Src, &mut Dst>::transmute_mut` = note: this error originates in the macro `transmute_mut` (in Nightly builds, run with -Z macro-backtrace for more info) error[E0308]: mismatched types --> $DIR/transmute_mut.rs:47:59 | 47 | const SRC_DST_NOT_REFERENCES: &mut usize = transmute_mut!(0usize); | ---------------^^^^^^- | | | | | expected `&mut _`, found `usize` | expected due to this | = note: expected mutable reference `&mut _` found type `usize` help: consider mutably borrowing here | 47 | const SRC_DST_NOT_REFERENCES: &mut usize = transmute_mut!(&mut 0usize); | ++++ error[E0308]: mismatched types --> $DIR/transmute_mut.rs:52:37 | 52 | let _: &mut u8 = transmute_mut!(&0u8); | ---------------^^^^- | | | | | types differ in mutability | expected due to this | = note: expected mutable reference `&mut _` found reference `&u8` error[E0308]: mismatched types --> $DIR/transmute_mut.rs:58:53 | 58 | const SRC_NOT_A_REFERENCE: &mut u8 = transmute_mut!(0usize); | ---------------^^^^^^- | | | | | expected `&mut _`, found `usize` | expected due to this | = note: expected mutable reference `&mut _` found type `usize` help: consider mutably borrowing here | 58 | const SRC_NOT_A_REFERENCE: &mut u8 = transmute_mut!(&mut 0usize); | ++++ error[E0277]: the trait bound `SrcC: FromBytes` is not satisfied --> $DIR/transmute_mut.rs:70:39 | 70 | const SRC_NOT_FROM_BYTES: &mut DstC = transmute_mut!(&mut SrcC); | ^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound | help: the trait `FromBytes` is not implemented for `SrcC` --> $DIR/transmute_mut.rs:63:1 | 63 | struct SrcC; | ^^^^^^^^^^^ = note: Consider adding `#[derive(FromBytes)]` to `SrcC` = help: the following other types implement trait `FromBytes`: () (A, B) (A, B, C) (A, B, C, D) (A, B, C, D, E) (A, B, C, D, E, F) (A, B, C, D, E, F, G) (A, B, C, D, E, F, G, H) and 85 others note: required by a bound in `zerocopy::util::macro_util::Wrap::<&'a mut Src, &'a mut Dst>::transmute_mut` --> src/util/macro_util.rs:805:14 | 803 | pub fn transmute_mut(self) -> &'a mut Dst | ------------- required by a bound in this associated function 804 | where 805 | Src: FromBytes + IntoBytes, | ^^^^^^^^^ required by this bound in `Wrap::<&mut Src, &mut Dst>::transmute_mut` = note: this error originates in the macro `transmute_mut` (in Nightly builds, run with -Z macro-backtrace for more info) error[E0277]: the trait bound `SrcD: IntoBytes` is not satisfied --> $DIR/transmute_mut.rs:82:37 | 82 | const SRC_NOT_AS_BYTES: &mut DstD = transmute_mut!(&mut SrcD); | ^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound | help: the trait `IntoBytes` is not implemented for `SrcD` --> $DIR/transmute_mut.rs:75:1 | 75 | struct SrcD; | ^^^^^^^^^^^ = note: Consider adding `#[derive(IntoBytes)]` to `SrcD` = help: the following other types implement trait `IntoBytes`: () AU16 AtomicBool AtomicI16 AtomicI32 AtomicI64 AtomicI8 AtomicIsize and 74 others note: required by a bound in `zerocopy::util::macro_util::Wrap::<&'a mut Src, &'a mut Dst>::transmute_mut` --> src/util/macro_util.rs:805:26 | 803 | pub fn transmute_mut(self) -> &'a mut Dst | ------------- required by a bound in this associated function 804 | where 805 | Src: FromBytes + IntoBytes, | ^^^^^^^^^ required by this bound in `Wrap::<&mut Src, &mut Dst>::transmute_mut` = note: this error originates in the macro `transmute_mut` (in Nightly builds, run with -Z macro-backtrace for more info) error[E0599]: the method `transmute_mut` exists for struct `zerocopy::util::macro_util::Wrap<&mut [u8], &mut [u8; 1]>`, but its trait bounds were not satisfied --> $DIR/transmute_mut.rs:87:35 | 87 | const SRC_UNSIZED: &mut [u8; 1] = transmute_mut!(&mut [0u8][..]); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ::: src/util/macro_util.rs:692:1 | 692 | pub struct Wrap(pub Src, pub PhantomData); | ------------------------- doesn't satisfy `_: TransmuteMutDst<'_>` | = note: the following trait bounds were not satisfied: `[u8]: Sized` `<[u8; 1] as KnownLayout>::PointerMetadata = usize` which is required by `zerocopy::util::macro_util::Wrap<&mut [u8], &mut [u8; 1]>: zerocopy::util::macro_util::TransmuteMutDst<'_>` = note: this error originates in the macro `transmute_mut` (in Nightly builds, run with -Z macro-backtrace for more info) error: aborting due to 10 previous errors Some errors have detailed explanations: E0277, E0308, E0599. For more information about an error, try `rustc --explain E0277`.