Skip to content
Permalink
Browse files

Add long error explanation for E0566

  • Loading branch information...
GuillaumeGomez committed Oct 6, 2019
1 parent 5a8fb7c commit c5e0d6e4d43f228687c75ab7406f64b318752d7b
Showing with 24 additions and 1 deletion.
  1. +24 −1 src/librustc/error_codes.rs
@@ -1700,6 +1700,30 @@ To understand better how closures work in Rust, read:
https://doc.rust-lang.org/book/ch13-01-closures.html
"##,

E0566: r##"
Conflicting representation hints have been used on a same item.
Erroneous code example:
```compile_fail,E0566
# #![deny(warnings)]
# fn main() {
#[repr(u32, u64)] // error!
enum Repr { A }
# }
```
In most cases (if not all), using just one representation hint is more than
enough. If you want to have a representation hint depending on the current
architecture, use `cfg_attr`. Example:
```
#[cfg_attr(linux, repr(u32))]
#[cfg_attr(not(linux), repr(u64))]
enum Repr { A }
```
"##,

E0580: r##"
The `main` function was incorrectly declared.
@@ -2097,7 +2121,6 @@ rejected in your own crates.
E0490, // a value of type `..` is borrowed for too long
E0495, // cannot infer an appropriate lifetime due to conflicting
// requirements
E0566, // conflicting representation hints
E0623, // lifetime mismatch where both parameters are anonymous regions
E0628, // generators cannot have explicit parameters
E0631, // type mismatch in closure arguments

0 comments on commit c5e0d6e

Please sign in to comment.
You can’t perform that action at this time.