1
Fork 0

Add E0513 error explanation

This commit is contained in:
Guillaume Gomez 2016-09-25 19:10:06 +02:00
parent 2d1d4d1994
commit 09a63c1571

View file

@ -3766,6 +3766,45 @@ extern "platform-intrinsic" {
``` ```
"##, "##,
E0513: r##"
The type of the variable couldn't be found out.
Erroneous code example:
```compile_fail,E0513
use std::mem;
unsafe {
let size = mem::size_of::<u32>();
mem::transmute_copy::<u32, [u8; size]>(&8_8);
// error: no type for local variable
}
```
To fix this error, please use a constant size instead of `size`. To make
this error more obvious, you could run:
```compile_fail,E0080
use std::mem;
unsafe {
mem::transmute_copy::<u32, [u8; mem::size_of::<u32>()]>(&8_8);
// error: constant evaluation error
}
```
So now, you can fix your code by setting the size directly:
```
use std::mem;
unsafe {
mem::transmute_copy::<u32, [u8; 4]>(&8_8);
// `u32` is 4 bytes so we replace the `mem::size_of` call with its size
}
```
"##,
E0516: r##" E0516: r##"
The `typeof` keyword is currently reserved but unimplemented. The `typeof` keyword is currently reserved but unimplemented.
Erroneous code example: Erroneous code example:
@ -4064,7 +4103,6 @@ register_diagnostics! {
E0399, // trait items need to be implemented because the associated E0399, // trait items need to be implemented because the associated
// type `{}` was overridden // type `{}` was overridden
E0436, // functional record update requires a struct E0436, // functional record update requires a struct
E0513, // no type for local variable ..
E0521, // redundant default implementations of trait E0521, // redundant default implementations of trait
E0533, // `{}` does not name a unit variant, unit struct or a constant E0533, // `{}` does not name a unit variant, unit struct or a constant
E0562, // `impl Trait` not allowed outside of function E0562, // `impl Trait` not allowed outside of function