error: unrecognized representation hint --> tests/ui-nightly/enum.rs:19:8 | 19 | #[repr("foo")] | ^^^^^ error: unrecognized representation hint --> tests/ui-nightly/enum.rs:25:8 | 25 | #[repr(foo)] | ^^^ error: must have #[repr(C)] or #[repr(Int)] attribute in order to guarantee this type's memory layout --> tests/ui-nightly/enum.rs:30:10 | 30 | #[derive(FromBytes)] | ^^^^^^^^^ | = note: this error originates in the derive macro `FromBytes` (in Nightly builds, run with -Z macro-backtrace for more info) error: this conflicts with another representation hint --> tests/ui-nightly/enum.rs:37:8 | 37 | #[repr(u8, u16)] | ^^^^^^^ error: must have #[repr(C)] or #[repr(Int)] attribute in order to guarantee this type's memory layout --> tests/ui-nightly/enum.rs:42:10 | 42 | #[derive(FromBytes)] | ^^^^^^^^^ | = note: this error originates in the derive macro `FromBytes` (in Nightly builds, run with -Z macro-backtrace for more info) error: must have #[repr(C)] or #[repr(Int)] attribute in order to guarantee this type's memory layout --> tests/ui-nightly/enum.rs:69:10 | 69 | #[derive(TryFromBytes)] | ^^^^^^^^^^^^ | = note: this error originates in the derive macro `TryFromBytes` (in Nightly builds, run with -Z macro-backtrace for more info) error: must have #[repr(C)] or #[repr(Int)] attribute in order to guarantee this type's memory layout --> tests/ui-nightly/enum.rs:74:10 | 74 | #[derive(TryFromBytes)] | ^^^^^^^^^^^^ | = note: this error originates in the derive macro `TryFromBytes` (in Nightly builds, run with -Z macro-backtrace for more info) error: must have #[repr(C)] or #[repr(Int)] attribute in order to guarantee this type's memory layout --> tests/ui-nightly/enum.rs:92:10 | 92 | #[derive(FromZeros)] | ^^^^^^^^^ | = note: this error originates in the derive macro `FromZeros` (in Nightly builds, run with -Z macro-backtrace for more info) error: must have #[repr(C)] or #[repr(Int)] attribute in order to guarantee this type's memory layout --> tests/ui-nightly/enum.rs:97:10 | 97 | #[derive(FromZeros)] | ^^^^^^^^^ | = note: this error originates in the derive macro `FromZeros` (in Nightly builds, run with -Z macro-backtrace for more info) error: must have #[repr(C)] or #[repr(Int)] attribute in order to guarantee this type's memory layout --> tests/ui-nightly/enum.rs:103:10 | 103 | #[derive(FromZeros)] | ^^^^^^^^^ | = note: this error originates in the derive macro `FromZeros` (in Nightly builds, run with -Z macro-backtrace for more info) error: FromZeros only supported on enums with a variant that has a discriminant of `0` --> tests/ui-nightly/enum.rs:110:1 | 110 | / #[repr(u8)] 111 | | enum FromZeros4 { 112 | | A = 1, 113 | | B = 2, 114 | | } | |_^ error: FromZeros only supported on enums with a variant that has a discriminant of `0` help: This enum has discriminants which are not literal integers. One of those may define or imply which variant has a discriminant of zero. Use a literal integer to define or imply the variant with a discriminant of zero. --> tests/ui-nightly/enum.rs:119:1 | 119 | / #[repr(i8)] 120 | | enum FromZeros5 { 121 | | A = NEGATIVE_ONE, 122 | | B, 123 | | } | |_^ error: FromZeros only supported on enums with a variant that has a discriminant of `0` --> tests/ui-nightly/enum.rs:134:1 | 134 | / #[repr(u8)] 135 | | enum FromZeros7 { 136 | | A = 1, 137 | | B(NotFromZeros), 138 | | } | |_^ error: must have #[repr(C)] or #[repr(Int)] attribute in order to guarantee this type's memory layout --> tests/ui-nightly/enum.rs:144:10 | 144 | #[derive(FromBytes)] | ^^^^^^^^^ | = note: this error originates in the derive macro `FromBytes` (in Nightly builds, run with -Z macro-backtrace for more info) error: `FromBytes` only supported on enums with `#[repr(...)]` attributes `u8`, `i8`, `u16`, or `i16` --> tests/ui-nightly/enum.rs:150:8 | 150 | #[repr(C)] | ^ error: `FromBytes` only supported on enums with `#[repr(...)]` attributes `u8`, `i8`, `u16`, or `i16` --> tests/ui-nightly/enum.rs:156:8 | 156 | #[repr(usize)] | ^^^^^ error: `FromBytes` only supported on enums with `#[repr(...)]` attributes `u8`, `i8`, `u16`, or `i16` --> tests/ui-nightly/enum.rs:162:8 | 162 | #[repr(isize)] | ^^^^^ error: `FromBytes` only supported on enums with `#[repr(...)]` attributes `u8`, `i8`, `u16`, or `i16` --> tests/ui-nightly/enum.rs:168:8 | 168 | #[repr(u32)] | ^^^ error: `FromBytes` only supported on enums with `#[repr(...)]` attributes `u8`, `i8`, `u16`, or `i16` --> tests/ui-nightly/enum.rs:174:8 | 174 | #[repr(i32)] | ^^^ error: `FromBytes` only supported on enums with `#[repr(...)]` attributes `u8`, `i8`, `u16`, or `i16` --> tests/ui-nightly/enum.rs:180:8 | 180 | #[repr(u64)] | ^^^ error: `FromBytes` only supported on enums with `#[repr(...)]` attributes `u8`, `i8`, `u16`, or `i16` --> tests/ui-nightly/enum.rs:186:8 | 186 | #[repr(i64)] | ^^^ error: must have #[repr(u8)] or #[repr(i8)] attribute in order to guarantee this type's alignment --> tests/ui-nightly/enum.rs:456:10 | 456 | #[derive(Unaligned)] | ^^^^^^^^^ | = note: this error originates in the derive macro `Unaligned` (in Nightly builds, run with -Z macro-backtrace for more info) error: must have #[repr(u8)] or #[repr(i8)] attribute in order to guarantee this type's alignment --> tests/ui-nightly/enum.rs:462:10 | 462 | #[derive(Unaligned)] | ^^^^^^^^^ | = note: this error originates in the derive macro `Unaligned` (in Nightly builds, run with -Z macro-backtrace for more info) error: must have #[repr(u8)] or #[repr(i8)] attribute in order to guarantee this type's alignment --> tests/ui-nightly/enum.rs:468:10 | 468 | #[derive(Unaligned)] | ^^^^^^^^^ | = note: this error originates in the derive macro `Unaligned` (in Nightly builds, run with -Z macro-backtrace for more info) error: must have #[repr(u8)] or #[repr(i8)] attribute in order to guarantee this type's alignment --> tests/ui-nightly/enum.rs:474:10 | 474 | #[derive(Unaligned)] | ^^^^^^^^^ | = note: this error originates in the derive macro `Unaligned` (in Nightly builds, run with -Z macro-backtrace for more info) error: must have #[repr(u8)] or #[repr(i8)] attribute in order to guarantee this type's alignment --> tests/ui-nightly/enum.rs:480:10 | 480 | #[derive(Unaligned)] | ^^^^^^^^^ | = note: this error originates in the derive macro `Unaligned` (in Nightly builds, run with -Z macro-backtrace for more info) error: must have #[repr(u8)] or #[repr(i8)] attribute in order to guarantee this type's alignment --> tests/ui-nightly/enum.rs:486:10 | 486 | #[derive(Unaligned)] | ^^^^^^^^^ | = note: this error originates in the derive macro `Unaligned` (in Nightly builds, run with -Z macro-backtrace for more info) error: must have #[repr(u8)] or #[repr(i8)] attribute in order to guarantee this type's alignment --> tests/ui-nightly/enum.rs:492:10 | 492 | #[derive(Unaligned)] | ^^^^^^^^^ | = note: this error originates in the derive macro `Unaligned` (in Nightly builds, run with -Z macro-backtrace for more info) error: must have #[repr(u8)] or #[repr(i8)] attribute in order to guarantee this type's alignment --> tests/ui-nightly/enum.rs:498:10 | 498 | #[derive(Unaligned)] | ^^^^^^^^^ | = note: this error originates in the derive macro `Unaligned` (in Nightly builds, run with -Z macro-backtrace for more info) error: must have #[repr(u8)] or #[repr(i8)] attribute in order to guarantee this type's alignment --> tests/ui-nightly/enum.rs:504:10 | 504 | #[derive(Unaligned)] | ^^^^^^^^^ | = note: this error originates in the derive macro `Unaligned` (in Nightly builds, run with -Z macro-backtrace for more info) error: cannot derive `Unaligned` on type with alignment greater than 1 --> tests/ui-nightly/enum.rs:511:12 | 511 | #[repr(u8, align(2))] | ^^^^^^^^ error: cannot derive `Unaligned` on type with alignment greater than 1 --> tests/ui-nightly/enum.rs:517:12 | 517 | #[repr(i8, align(2))] | ^^^^^^^^ error: this conflicts with another representation hint --> tests/ui-nightly/enum.rs:523:8 | 523 | #[repr(align(1), align(2))] | ^^^^^^^^^^^^^^^^^^ error: this conflicts with another representation hint --> tests/ui-nightly/enum.rs:529:8 | 529 | #[repr(align(2), align(4))] | ^^^^^^^^^^^^^^^^^^ error: must have #[repr(C)] or #[repr(Int)] attribute in order to guarantee this type's memory layout --> tests/ui-nightly/enum.rs:562:10 | 562 | #[derive(IntoBytes)] | ^^^^^^^^^ | = note: this error originates in the derive macro `IntoBytes` (in Nightly builds, run with -Z macro-backtrace for more info) error: must have #[repr(C)] or #[repr(Int)] attribute in order to guarantee this type's memory layout --> tests/ui-nightly/enum.rs:568:10 | 568 | #[derive(IntoBytes)] | ^^^^^^^^^ | = note: this error originates in the derive macro `IntoBytes` (in Nightly builds, run with -Z macro-backtrace for more info) error: generic parameters may not be used in const operations --> tests/ui-nightly/enum.rs:576:7 | 576 | A(T), | ^ cannot perform const operation using `T` | = note: type parameters may not be used in const expressions = help: add `#![feature(generic_const_exprs)]` to allow generic const expressions error[E0565]: meta item in `repr` must be an identifier --> tests/ui-nightly/enum.rs:19:8 | 19 | #[repr("foo")] | ^^^^^ error[E0552]: unrecognized representation hint --> tests/ui-nightly/enum.rs:25:8 | 25 | #[repr(foo)] | ^^^ | = help: valid reprs are `Rust` (default), `C`, `align`, `packed`, `transparent`, `simd`, `i8`, `u8`, `i16`, `u16`, `i32`, `u32`, `i64`, `u64`, `i128`, `u128`, `isize`, `usize` error[E0566]: conflicting representation hints --> tests/ui-nightly/enum.rs:37:8 | 37 | #[repr(u8, u16)] | ^^ ^^^ | = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! = note: for more information, see issue #68585 = note: `#[deny(conflicting_repr_hints)]` on by default error[E0277]: the trait bound `UnsafeCell<()>: Immutable` is not satisfied --> tests/ui-nightly/enum.rs:51:10 | 51 | #[derive(Immutable)] | ^^^^^^^^^ the trait `Immutable` is not implemented for `UnsafeCell<()>` | = note: Consider adding `#[derive(Immutable)]` to `UnsafeCell<()>` = help: the following other types implement trait `Immutable`: &T &mut T () *const T *mut T F32 F64 I128 and $N others = help: see issue #48214 = note: this error originates in the derive macro `Immutable` (in Nightly builds, run with -Z macro-backtrace for more info) help: add `#![feature(trivial_bounds)]` to the crate attributes to enable | 9 + #![feature(trivial_bounds)] | error[E0277]: the trait bound `UnsafeCell: Immutable` is not satisfied --> tests/ui-nightly/enum.rs:59:10 | 59 | #[derive(Immutable)] | ^^^^^^^^^ the trait `Immutable` is not implemented for `UnsafeCell` | = note: Consider adding `#[derive(Immutable)]` to `UnsafeCell` = help: the following other types implement trait `Immutable`: &T &mut T () *const T *mut T F32 F64 I128 and $N others = help: see issue #48214 = note: this error originates in the derive macro `Immutable` (in Nightly builds, run with -Z macro-backtrace for more info) help: add `#![feature(trivial_bounds)]` to the crate attributes to enable | 9 + #![feature(trivial_bounds)] | error[E0277]: the trait bound `NotTryFromBytes: TryFromBytes` is not satisfied --> tests/ui-nightly/enum.rs:82:10 | 82 | #[derive(TryFromBytes)] | ^^^^^^^^^^^^ the trait `TryFromBytes` is not implemented for `NotTryFromBytes` | = note: Consider adding `#[derive(TryFromBytes)]` to `NotTryFromBytes` = help: the following other types implement trait `TryFromBytes`: () *const T *mut T ::is_bit_valid::___ZerocopyVariantStruct_A ::is_bit_valid::___ZerocopyVariantStruct_A AtomicBool AtomicI16 AtomicI32 and $N others = help: see issue #48214 = note: this error originates in the derive macro `TryFromBytes` (in Nightly builds, run with -Z macro-backtrace for more info) help: add `#![feature(trivial_bounds)]` to the crate attributes to enable | 9 + #![feature(trivial_bounds)] | error[E0277]: the trait bound `NotFromZeros: TryFromBytes` is not satisfied --> tests/ui-nightly/enum.rs:127:10 | 127 | #[derive(FromZeros)] | ^^^^^^^^^ the trait `TryFromBytes` is not implemented for `NotFromZeros` | = note: Consider adding `#[derive(TryFromBytes)]` to `NotFromZeros` = help: the following other types implement trait `TryFromBytes`: () *const T *mut T ::is_bit_valid::___ZerocopyVariantStruct_A ::is_bit_valid::___ZerocopyVariantStruct_A AtomicBool AtomicI16 AtomicI32 and $N others = help: see issue #48214 = note: this error originates in the derive macro `FromZeros` (in Nightly builds, run with -Z macro-backtrace for more info) help: add `#![feature(trivial_bounds)]` to the crate attributes to enable | 9 + #![feature(trivial_bounds)] | error[E0277]: the trait bound `NotFromZeros: FromZeros` is not satisfied --> tests/ui-nightly/enum.rs:127:10 | 127 | #[derive(FromZeros)] | ^^^^^^^^^ the trait `FromZeros` is not implemented for `NotFromZeros` | = note: Consider adding `#[derive(FromZeros)]` to `NotFromZeros` = help: the following other types implement trait `FromZeros`: () *const T *mut T AtomicBool AtomicI16 AtomicI32 AtomicI64 AtomicI8 and $N others = help: see issue #48214 = note: this error originates in the derive macro `FromZeros` (in Nightly builds, run with -Z macro-backtrace for more info) help: add `#![feature(trivial_bounds)]` to the crate attributes to enable | 9 + #![feature(trivial_bounds)] | error[E0277]: the trait bound `bool: FromBytes` is not satisfied --> tests/ui-nightly/enum.rs:191:10 | 191 | #[derive(FromBytes)] | ^^^^^^^^^ the trait `FromBytes` is not implemented for `bool` | = note: Consider adding `#[derive(FromBytes)]` to `bool` = help: the following other types implement trait `FromBytes`: () AtomicI16 AtomicI32 AtomicI64 AtomicI8 AtomicIsize AtomicU16 AtomicU32 and $N others = help: see issue #48214 = note: this error originates in the derive macro `FromBytes` (in Nightly builds, run with -Z macro-backtrace for more info) help: add `#![feature(trivial_bounds)]` to the crate attributes to enable | 9 + #![feature(trivial_bounds)] | error[E0277]: `IntoBytes1` has inter-field padding --> tests/ui-nightly/enum.rs:538:10 | 538 | #[derive(IntoBytes)] | ^^^^^^^^^ types with padding cannot implement `IntoBytes` | = note: consider using `zerocopy::Unalign` to lower the alignment of individual fields = note: consider adding explicit fields where padding would be = note: consider using `#[repr(packed)]` to remove inter-field padding = help: the trait `PaddingFree` is not implemented for `()` but trait `PaddingFree` is implemented for it = help: see issue #48214 = note: this error originates in the derive macro `IntoBytes` (in Nightly builds, run with -Z macro-backtrace for more info) help: add `#![feature(trivial_bounds)]` to the crate attributes to enable | 9 + #![feature(trivial_bounds)] | error[E0277]: `IntoBytes2` has inter-field padding --> tests/ui-nightly/enum.rs:549:10 | 549 | #[derive(IntoBytes)] | ^^^^^^^^^ types with padding cannot implement `IntoBytes` | = note: consider using `zerocopy::Unalign` to lower the alignment of individual fields = note: consider adding explicit fields where padding would be = note: consider using `#[repr(packed)]` to remove inter-field padding = help: the trait `PaddingFree` is not implemented for `()` but trait `PaddingFree` is implemented for it = help: see issue #48214 = note: this error originates in the derive macro `IntoBytes` (in Nightly builds, run with -Z macro-backtrace for more info) help: add `#![feature(trivial_bounds)]` to the crate attributes to enable | 9 + #![feature(trivial_bounds)] | error[E0277]: `IntoBytes3` has inter-field padding --> tests/ui-nightly/enum.rs:555:10 | 555 | #[derive(IntoBytes)] | ^^^^^^^^^ types with padding cannot implement `IntoBytes` | = note: consider using `zerocopy::Unalign` to lower the alignment of individual fields = note: consider adding explicit fields where padding would be = note: consider using `#[repr(packed)]` to remove inter-field padding = help: the trait `PaddingFree` is not implemented for `()` but trait `PaddingFree` is implemented for it = help: see issue #48214 = note: this error originates in the derive macro `IntoBytes` (in Nightly builds, run with -Z macro-backtrace for more info) help: add `#![feature(trivial_bounds)]` to the crate attributes to enable | 9 + #![feature(trivial_bounds)] | error: generic `Self` types are currently not permitted in anonymous constants --> tests/ui-nightly/enum.rs:573:10 | 573 | #[derive(IntoBytes)] | ^^^^^^^^^ | note: not a concrete type --> tests/ui-nightly/enum.rs:573:10 | 573 | #[derive(IntoBytes)] | ^^^^^^^^^ = note: this error originates in the derive macro `IntoBytes` (in Nightly builds, run with -Z macro-backtrace for more info) error[E0277]: the trait bound `bool: FromBytes` is not satisfied --> tests/ui-nightly/enum.rs:191:10 | 191 | #[derive(FromBytes)] | ^^^^^^^^^ the trait `FromBytes` is not implemented for `bool` | = note: Consider adding `#[derive(FromBytes)]` to `bool` = help: the following other types implement trait `FromBytes`: () AtomicI16 AtomicI32 AtomicI64 AtomicI8 AtomicIsize AtomicU16 AtomicU32 and $N others note: required for `FooU8` to implement `FromBytes` --> tests/ui-nightly/enum.rs:191:10 | 191 | #[derive(FromBytes)] | ^^^^^^^^^ unsatisfied trait bound introduced in this `derive` macro note: required by a bound in `assert_is_from_bytes` --> tests/ui-nightly/enum.rs:191:10 | 191 | #[derive(FromBytes)] | ^^^^^^^^^ required by this bound in `assert_is_from_bytes` = note: this error originates in the derive macro `FromBytes` (in Nightly builds, run with -Z macro-backtrace for more info)