Skip to content

Commit

Permalink
Rollup merge of rust-lang#33865 - GuillaumeGomez:E0084, r=jonathandtu…
Browse files Browse the repository at this point in the history
…rner

Improve E0084 error explanation

r? @Manishearth

cc @steveklabnik
  • Loading branch information
GuillaumeGomez committed May 27, 2016
2 parents caa732a + dfa0d2c commit 4ffebe7
Showing 1 changed file with 22 additions and 2 deletions.
24 changes: 22 additions & 2 deletions src/librustc_typeck/diagnostics.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1193,12 +1193,32 @@ discriminant values so that they fit within the existing type.
"##,

E0084: r##"
An unsupported representation was attempted on a zero-variant enum.
Erroneous code example:
```compile_fail
#[repr(i32)]
enum NightWatch {} // 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:
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 NightWatch {
JohnSnow,
Commander,
}
```
or you remove the integer represention of your enum:
```
enum Empty {}
enum NightWatch {}
```
"##,

Expand Down

0 comments on commit 4ffebe7

Please sign in to comment.