error[E0308]: mismatched types --> tests$RUSTUP_TOOLCHAIN/lib/rustlib/src/rust/library/core/src/result.rs:561:5 | 561 | Ok(#[stable(feature = "rust1", since = "1.0.0")] T), | ^^ = note: this error originates in the macro `try_transmute_ref` (in Nightly builds, run with -Z macro-backtrace for more info) error[E0308]: mismatched types --> $DIR/try_transmute_ref.rs:19:33 | 19 | let _: Result<&mut u8, _> = try_transmute_ref!(&0u8); | ^^^^^^^^^^^^^^^^^^^^^^^^ types differ in mutability | = note: expected enum `Result<&mut u8, _>` found enum `Result<&_, ValidityError<&u8, _>>` = note: this error originates in the macro `try_transmute_ref` (in Nightly builds, run with -Z macro-backtrace for more info) error[E0277]: the trait bound `NotZerocopy: TryFromBytes` is not satisfied --> $DIR/try_transmute_ref.rs:25:59 | 25 | let dst_not_try_from_bytes: Result<&NotZerocopy, _> = try_transmute_ref!(&AU16(0)); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound | help: the trait `TryFromBytes` is not implemented for `NotZerocopy` --> $DIR/../include.rs:15:5 | 15 | pub struct NotZerocopy(pub T); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ = note: Consider adding `#[derive(TryFromBytes)]` to `NotZerocopy` = help: the following other types implement trait `TryFromBytes`: () (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 153 others note: required by a bound in `zerocopy::util::macro_util::Wrap::<&'a Src, &'a Dst>::try_transmute_ref` --> src/util/macro_util.rs:755:14 | 752 | pub fn try_transmute_ref(self) -> Result<&'a Dst, ValidityError<&'a Src, Dst>> | ----------------- required by a bound in this associated function ... 755 | Dst: TryFromBytes + Immutable, | ^^^^^^^^^^^^ required by this bound in `Wrap::<&Src, &Dst>::try_transmute_ref` = note: this error originates in the macro `try_transmute_ref` (in Nightly builds, run with -Z macro-backtrace for more info) error[E0277]: the trait bound `NotZerocopy: Immutable` is not satisfied --> $DIR/try_transmute_ref.rs:25:59 | 25 | let dst_not_try_from_bytes: Result<&NotZerocopy, _> = try_transmute_ref!(&AU16(0)); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound | help: the trait `Immutable` is not implemented for `NotZerocopy` --> $DIR/../include.rs:15:5 | 15 | pub struct NotZerocopy(pub T); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ = note: Consider adding `#[derive(Immutable)]` to `NotZerocopy` = help: the following other types implement trait `Immutable`: &T &mut T () (A, B) (A, B, C) (A, B, C, D) (A, B, C, D, E) (A, B, C, D, E, F) and 128 others note: required by a bound in `zerocopy::util::macro_util::Wrap::<&'a Src, &'a Dst>::try_transmute_ref` --> src/util/macro_util.rs:755:29 | 752 | pub fn try_transmute_ref(self) -> Result<&'a Dst, ValidityError<&'a Src, Dst>> | ----------------- required by a bound in this associated function ... 755 | Dst: TryFromBytes + Immutable, | ^^^^^^^^^ required by this bound in `Wrap::<&Src, &Dst>::try_transmute_ref` = note: this error originates in the macro `try_transmute_ref` (in Nightly builds, run with -Z macro-backtrace for more info) error[E0277]: the trait bound `NotZerocopy: TryFromBytes` is not satisfied --> $DIR/try_transmute_ref.rs:25:33 | 25 | let dst_not_try_from_bytes: Result<&NotZerocopy, _> = try_transmute_ref!(&AU16(0)); | ^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound | help: the trait `TryFromBytes` is not implemented for `NotZerocopy` --> $DIR/../include.rs:15:5 | 15 | pub struct NotZerocopy(pub T); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ = note: Consider adding `#[derive(TryFromBytes)]` to `NotZerocopy` = help: the following other types implement trait `TryFromBytes`: () (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 153 others note: required by a bound in `ValidityError` --> src/error.rs:588:45 | 588 | pub struct ValidityError { | ^^^^^^^^^^^^ required by this bound in `ValidityError` error[E0277]: the trait bound `NotZerocopy: TryFromBytes` is not satisfied --> $DIR/try_transmute_ref.rs:25:59 | 25 | let dst_not_try_from_bytes: Result<&NotZerocopy, _> = try_transmute_ref!(&AU16(0)); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound | help: the trait `TryFromBytes` is not implemented for `NotZerocopy` --> $DIR/../include.rs:15:5 | 15 | pub struct NotZerocopy(pub T); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ = note: Consider adding `#[derive(TryFromBytes)]` to `NotZerocopy` = help: the following other types implement trait `TryFromBytes`: () (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 153 others note: required by a bound in `ValidityError` --> src/error.rs:588:45 | 588 | pub struct ValidityError { | ^^^^^^^^^^^^ required by this bound in `ValidityError` = note: this error originates in the macro `try_transmute_ref` (in Nightly builds, run with -Z macro-backtrace for more info) error[E0277]: the trait bound `NotZerocopy: IntoBytes` is not satisfied --> $DIR/try_transmute_ref.rs:33:48 | 33 | let src_not_into_bytes: Result<&AU16, _> = try_transmute_ref!(&NotZerocopy(AU16(0))); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound | help: the trait `IntoBytes` is not implemented for `NotZerocopy` --> $DIR/../include.rs:15:5 | 15 | pub struct NotZerocopy(pub T); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ = note: Consider adding `#[derive(IntoBytes)]` to `NotZerocopy` = help: the following other types implement trait `IntoBytes`: () AU16 AtomicBool AtomicI16 AtomicI32 AtomicI64 AtomicI8 AtomicIsize and 68 others note: required by a bound in `zerocopy::util::macro_util::Wrap::<&'a Src, &'a Dst>::try_transmute_ref` --> src/util/macro_util.rs:754:14 | 752 | pub fn try_transmute_ref(self) -> Result<&'a Dst, ValidityError<&'a Src, Dst>> | ----------------- required by a bound in this associated function 753 | where 754 | Src: IntoBytes + Immutable, | ^^^^^^^^^ required by this bound in `Wrap::<&Src, &Dst>::try_transmute_ref` = note: this error originates in the macro `try_transmute_ref` (in Nightly builds, run with -Z macro-backtrace for more info) error[E0277]: the trait bound `NotZerocopy: Immutable` is not satisfied --> $DIR/try_transmute_ref.rs:33:48 | 33 | let src_not_into_bytes: Result<&AU16, _> = try_transmute_ref!(&NotZerocopy(AU16(0))); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound | help: the trait `Immutable` is not implemented for `NotZerocopy` --> $DIR/../include.rs:15:5 | 15 | pub struct NotZerocopy(pub T); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ = note: Consider adding `#[derive(Immutable)]` to `NotZerocopy` = help: the following other types implement trait `Immutable`: &T &mut T () (A, B) (A, B, C) (A, B, C, D) (A, B, C, D, E) (A, B, C, D, E, F) and 128 others note: required by a bound in `zerocopy::util::macro_util::Wrap::<&'a Src, &'a Dst>::try_transmute_ref` --> src/util/macro_util.rs:754:26 | 752 | pub fn try_transmute_ref(self) -> Result<&'a Dst, ValidityError<&'a Src, Dst>> | ----------------- required by a bound in this associated function 753 | where 754 | Src: IntoBytes + Immutable, | ^^^^^^^^^ required by this bound in `Wrap::<&Src, &Dst>::try_transmute_ref` = note: this error originates in the macro `try_transmute_ref` (in Nightly builds, run with -Z macro-backtrace for more info) error: aborting due to 8 previous errors Some errors have detailed explanations: E0277, E0308. For more information about an error, try `rustc --explain E0277`.