| error[E0391]: cycle detected when simplifying constant for the type system `Alpha::V3::{constant#0}` |
| --> $DIR/self-in-enum-definition.rs:5:10 |
| | |
| LL | V3 = Self::V1 {} as u8 + 2, |
| | ^^^^^^^^^^^^^^^^^^^^^ |
| | |
| note: ...which requires simplifying constant for the type system `Alpha::V3::{constant#0}`... |
| --> $DIR/self-in-enum-definition.rs:5:10 |
| | |
| LL | V3 = Self::V1 {} as u8 + 2, |
| | ^^^^^^^^^^^^^^^^^^^^^ |
| note: ...which requires const-evaluating + checking `Alpha::V3::{constant#0}`... |
| --> $DIR/self-in-enum-definition.rs:5:10 |
| | |
| LL | V3 = Self::V1 {} as u8 + 2, |
| | ^^^^^^^^^^^^^^^^^^^^^ |
| note: ...which requires caching mir of `Alpha::V3::{constant#0}` for CTFE... |
| --> $DIR/self-in-enum-definition.rs:5:10 |
| | |
| LL | V3 = Self::V1 {} as u8 + 2, |
| | ^^^^^^^^^^^^^^^^^^^^^ |
| note: ...which requires elaborating drops for `Alpha::V3::{constant#0}`... |
| --> $DIR/self-in-enum-definition.rs:5:10 |
| | |
| LL | V3 = Self::V1 {} as u8 + 2, |
| | ^^^^^^^^^^^^^^^^^^^^^ |
| note: ...which requires borrow-checking `Alpha::V3::{constant#0}`... |
| --> $DIR/self-in-enum-definition.rs:5:10 |
| | |
| LL | V3 = Self::V1 {} as u8 + 2, |
| | ^^^^^^^^^^^^^^^^^^^^^ |
| note: ...which requires promoting constants in MIR for `Alpha::V3::{constant#0}`... |
| --> $DIR/self-in-enum-definition.rs:5:10 |
| | |
| LL | V3 = Self::V1 {} as u8 + 2, |
| | ^^^^^^^^^^^^^^^^^^^^^ |
| note: ...which requires const checking `Alpha::V3::{constant#0}`... |
| --> $DIR/self-in-enum-definition.rs:5:10 |
| | |
| LL | V3 = Self::V1 {} as u8 + 2, |
| | ^^^^^^^^^^^^^^^^^^^^^ |
| note: ...which requires preparing `Alpha::V3::{constant#0}` for borrow checking... |
| --> $DIR/self-in-enum-definition.rs:5:10 |
| | |
| LL | V3 = Self::V1 {} as u8 + 2, |
| | ^^^^^^^^^^^^^^^^^^^^^ |
| note: ...which requires unsafety-checking `Alpha::V3::{constant#0}`... |
| --> $DIR/self-in-enum-definition.rs:5:10 |
| | |
| LL | V3 = Self::V1 {} as u8 + 2, |
| | ^^^^^^^^^^^^^^^^^^^^^ |
| note: ...which requires building MIR for `Alpha::V3::{constant#0}`... |
| --> $DIR/self-in-enum-definition.rs:5:10 |
| | |
| LL | V3 = Self::V1 {} as u8 + 2, |
| | ^^^^^^^^^^^^^^^^^^^^^ |
| = note: ...which requires computing layout of `Alpha`... |
| = note: ...which again requires simplifying constant for the type system `Alpha::V3::{constant#0}`, completing the cycle |
| note: cycle used when collecting item types in top-level module |
| --> $DIR/self-in-enum-definition.rs:1:1 |
| | |
| LL | / #[repr(u8)] |
| LL | | enum Alpha { |
| LL | | V1 = 41, |
| LL | | V2 = Self::V1 as u8 + 1, // OK; See #50072. |
| ... | |
| LL | | |
| LL | | fn main() {} |
| | |____________^ |
| = 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`. |