Rollup merge of #62916 - Centril:self-in-enum-def, r=oli-obk
Add test `self-in-enum-definition` Apparently there was no test covering this... r? @oli-obk cc @petrochenkov
This commit is contained in:
commit
92aff0a982
@ -0,0 +1,8 @@
|
||||
#[repr(u8)]
|
||||
enum Alpha {
|
||||
V1 = 41,
|
||||
V2 = Self::V1 as u8 + 1, // OK; See #50072.
|
||||
V3 = Self::V1 {} as u8 + 2, //~ ERROR cycle detected when const-evaluating
|
||||
}
|
||||
|
||||
fn main() {}
|
@ -0,0 +1,28 @@
|
||||
error[E0391]: cycle detected when 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 const-evaluating `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 const-evaluating + checking `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() {}
|
||||
| |____________^
|
||||
|
||||
error: aborting due to previous error
|
||||
|
||||
For more information about this error, try `rustc --explain E0391`.
|
Loading…
Reference in New Issue
Block a user