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<T>
   |               ^ 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<dyn Trait>;
   |              ^^^^^^^^^^^^^^^^^ 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<T>
   |               ^ required by the implicit `Sized` requirement on this type parameter in `Inline`
help: consider relaxing the implicit `Sized` restriction
   |
LL | struct Inline<T: ?Sized>
   |                ++++++++

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`.
