error[E0391]: cycle detected when building an abstract representation for `test::{constant#0}`
  --> $DIR/closures.rs:3:35
   |
LL | fn test<const N: usize>() -> [u8; N + (|| 42)()] {}
   |                                   ^^^^^^^^^^^^^
   |
note: ...which requires building THIR for `test::{constant#0}`...
  --> $DIR/closures.rs:3:35
   |
LL | fn test<const N: usize>() -> [u8; N + (|| 42)()] {}
   |                                   ^^^^^^^^^^^^^
note: ...which requires type-checking `test::{constant#0}`...
  --> $DIR/closures.rs:3:35
   |
LL | fn test<const N: usize>() -> [u8; N + (|| 42)()] {}
   |                                   ^^^^^^^^^^^^^
   = note: ...which again requires building an abstract representation for `test::{constant#0}`, completing the cycle
note: cycle used when checking that `test` is well-formed
  --> $DIR/closures.rs:3:1
   |
LL | fn test<const N: usize>() -> [u8; N + (|| 42)()] {}
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   = 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

error: aborting due to previous error

For more information about this error, try `rustc --explain E0391`.