error: overly complex generic constant --> $DIR/inside-array-length.rs:9:27 | LL | fn foo<'a, T: 'a>(_: [(); std::mem::offset_of!((T,), 0)]) {} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ const blocks are not supported in generic constants | = help: consider moving this anonymous constant into a `const` function = note: this operation may be supported in the future = note: this error originates in the macro `std::mem::offset_of` (in Nightly builds, run with -Z macro-backtrace for more info) error[E0392]: type parameter `T` is never used --> $DIR/inside-array-length.rs:13:15 | LL | struct Inline | ^ unused type parameter | = help: consider removing `T`, referring to it in a field, or using a marker such as `PhantomData` = help: if you intended `T` to be a const parameter, use `const T: /* Type */` instead error: overly complex generic constant --> $DIR/inside-array-length.rs:16:10 | LL | [(); std::mem::offset_of!((T,), 0)]:, | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ const blocks are not supported in generic constants | = help: consider moving this anonymous constant into a `const` function = note: this operation may be supported in the future = note: this error originates in the macro `std::mem::offset_of` (in Nightly builds, run with -Z macro-backtrace for more info) error[E0391]: cycle detected when evaluating type-level constant --> $DIR/inside-array-length.rs:9:27 | LL | fn foo<'a, T: 'a>(_: [(); std::mem::offset_of!((T,), 0)]) {} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | note: ...which requires const-evaluating + checking `foo::{constant#0}`... --> $DIR/inside-array-length.rs:9:27 | LL | fn foo<'a, T: 'a>(_: [(); std::mem::offset_of!((T,), 0)]) {} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: ...which requires caching mir of `foo::{constant#0}` for CTFE... --> $DIR/inside-array-length.rs:9:27 | LL | fn foo<'a, T: 'a>(_: [(); std::mem::offset_of!((T,), 0)]) {} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: ...which requires elaborating drops for `foo::{constant#0}`... --> $DIR/inside-array-length.rs:9:27 | LL | fn foo<'a, T: 'a>(_: [(); std::mem::offset_of!((T,), 0)]) {} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: ...which requires borrow-checking `foo::{constant#0}`... --> $DIR/inside-array-length.rs:9:27 | LL | fn foo<'a, T: 'a>(_: [(); std::mem::offset_of!((T,), 0)]) {} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: ...which requires normalizing `Binder { value: ConstEvaluatable(UnevaluatedConst { def: DefId(0:7 ~ inside_array_length[07d6]::foo::{constant#0}), args: ['^c_1, T/#1] }), bound_vars: [] }`... --> $DIR/inside-array-length.rs:9:27 | LL | fn foo<'a, T: 'a>(_: [(); std::mem::offset_of!((T,), 0)]) {} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ = note: ...which again requires evaluating type-level constant, completing the cycle note: cycle used when normalizing `inside_array_length::::foo::{constant#0}` --> $DIR/inside-array-length.rs:9:27 | LL | fn foo<'a, T: 'a>(_: [(); std::mem::offset_of!((T,), 0)]) {} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ = note: see https://rustc-dev-guide.rust-lang.org/overview.html#queries and https://rustc-dev-guide.rust-lang.org/query.html for more information = note: this error originates in the macro `std::mem::offset_of` (in Nightly builds, run with -Z macro-backtrace for more info) error[E0277]: the size for values of type `dyn Trait` cannot be known at compilation time --> $DIR/inside-array-length.rs:21:14 | LL | let dst: Inline; | ^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time | = help: the trait `Sized` is not implemented for `dyn Trait` note: required by an implicit `Sized` bound in `Inline` --> $DIR/inside-array-length.rs:13:15 | LL | struct Inline | ^ required by the implicit `Sized` requirement on this type parameter in `Inline` help: consider relaxing the implicit `Sized` restriction | LL | struct Inline | ++++++++ error: aborting due to 5 previous errors Some errors have detailed explanations: E0277, E0391, E0392. For more information about an error, try `rustc --explain E0277`.