Rust errors / Attributes, macros and features
Rust compiler error · checked with rustc 1.99.0
Rust error E0084: unsupported representation for zero-variant enum
What it meansAn unsupported representation was attempted on a zero-variant enum.
What rustc prints
error[E0084]: unsupported representation for zero-variant enum
--> main.rs:1:8
|
1 | #[repr(i32)]
| ^^^
2 | enum NightsWatch {} // error: unsupported representation for zero-variant enum
| ---------------- zero-variant enumReal output of rustc 1.99.0 compiling the official example below (2021 edition). Your names and line numbers will differ; the first line is the part to match.
The compiler team's explanation
An unsupported representation was attempted on a zero-variant enum.
Erroneous code example:
#[repr(i32)]
enum NightsWatch {} // error: unsupported representation for zero-variant enum
It is impossible to define an integer type to be used to represent zero-variant enum values because there are no zero-variant enum values. There is no way to construct an instance of the following type using only safe code. So you have two solutions. Either you add variants in your enum:
#[repr(i32)]
enum NightsWatch {
JonSnow,
Commander,
}
or you remove the integer representation of your enum:
enum NightsWatch {}From rustc --explain E0084 (1.99.0), part of the Rust project, MIT or Apache-2.0. Official page.
Related errors
Up next
Often hit nextE0658: is unstableA related error from the same family.Read it next →Did this answer your question?