error[E0277]: the trait bound `T: KnownLayout` is not satisfied --> $DIR/mid_compile_pass.rs:67:26 | 67 | fn test_kl13(t: T) -> impl KnownLayout { | ^^^^^^^^^^^^^^^^ the trait `KnownLayout` is not implemented for `T` 68 | 69 | KL13(0u8, t) | ------------ return type was inferred to be `KL13` here | = note: Consider adding `#[derive(KnownLayout)]` to `T` note: required for `KL13` to implement `KnownLayout` --> $DIR/mid_compile_pass.rs:62:10 | 62 | #[derive(KnownLayout)] | ^^^^^^^^^^^ unsatisfied trait bound introduced in this `derive` macro = note: this error originates in the derive macro `KnownLayout` (in Nightly builds, run with -Z macro-backtrace for more info) help: consider restricting type parameter `T` with trait `KnownLayout` | 67 | fn test_kl13(t: T) -> impl KnownLayout { | +++++++++++++++++++++++++++++++ error[E0277]: the size for values of type `T` cannot be known at compilation time --> $DIR/mid_compile_pass.rs:32:15 | 31 | fn test_kl04(kl: &KL04) { | - this type parameter needs to be `Sized` 32 | assert_kl(kl); | --------- ^^ doesn't have a size known at compile-time | | | required by a bound introduced by this call | note: required because it appears within the type `KL04` --> $DIR/mid_compile_pass.rs:29:8 | 29 | struct KL04(u8, T); | ^^^^ note: required for `KL04` to implement `KnownLayout` --> $DIR/mid_compile_pass.rs:27:10 | 27 | #[derive(KnownLayout)] | ^^^^^^^^^^^ unsatisfied trait bound introduced in this `derive` macro note: required by a bound in `assert_kl` --> $DIR/mid_compile_pass.rs:23:26 | 23 | fn assert_kl(_: &T) {} | ^^^^^^^^^^^ required by this bound in `assert_kl` = note: this error originates in the derive macro `KnownLayout` (in Nightly builds, run with -Z macro-backtrace for more info) help: consider removing the `?Sized` bound to make the type parameter `Sized` | 31 - fn test_kl04(kl: &KL04) { 31 + fn test_kl04(kl: &KL04) { | error[E0277]: the size for values of type `T` cannot be known at compilation time --> $DIR/mid_compile_pass.rs:43:15 | 42 | fn test_kl06(kl: &KL06) { | - this type parameter needs to be `Sized` 43 | assert_kl(kl); | --------- ^^ doesn't have a size known at compile-time | | | required by a bound introduced by this call | note: required because it appears within the type `KL06` --> $DIR/mid_compile_pass.rs:40:8 | 40 | struct KL06(u8, T); | ^^^^ note: required for `KL06` to implement `KnownLayout` --> $DIR/mid_compile_pass.rs:38:10 | 38 | #[derive(KnownLayout)] | ^^^^^^^^^^^ unsatisfied trait bound introduced in this `derive` macro note: required by a bound in `assert_kl` --> $DIR/mid_compile_pass.rs:23:26 | 23 | fn assert_kl(_: &T) {} | ^^^^^^^^^^^ required by this bound in `assert_kl` = note: this error originates in the derive macro `KnownLayout` (in Nightly builds, run with -Z macro-backtrace for more info) help: consider removing the `?Sized` bound to make the type parameter `Sized` | 42 - fn test_kl06(kl: &KL06) { 42 + fn test_kl06(kl: &KL06) { | error[E0277]: the trait bound `KL12: KnownLayout` is not satisfied --> $DIR/mid_compile_pass.rs:55:15 | 55 | assert_kl(kl) | --------- ^^ the trait `KnownLayout` is not implemented for `KL12` | | | required by a bound introduced by this call | note: required for `KL12` to implement `KnownLayout` --> $DIR/mid_compile_pass.rs:49:10 | 49 | #[derive(KnownLayout)] | ^^^^^^^^^^^ unsatisfied trait bound introduced in this `derive` macro note: required by a bound in `assert_kl` --> $DIR/mid_compile_pass.rs:23:26 | 23 | fn assert_kl(_: &T) {} | ^^^^^^^^^^^ required by this bound in `assert_kl` = note: this error originates in the derive macro `KnownLayout` (in Nightly builds, run with -Z macro-backtrace for more info) help: consider borrowing here | 55 | assert_kl(&kl) | + 55 | assert_kl(&mut kl) | ++++ error: aborting due to 4 previous errors For more information about this error, try `rustc --explain E0277`.