Rust errors / Everything else
Rust compiler error · checked with rustc 1.99.0
Rust error E0606: casting `&u8` as `u32` is invalid
What it meansAn incompatible cast was attempted.
What rustc prints
error[E0606]: casting `&u8` as `u32` is invalid --> main.rs:4:14 | 4 | let y: u32 = x as u32; // error: casting `&u8` as `u32` is invalid | ^^^^^^^^ | help: dereference the expression | 4 | let y: u32 = *x as u32; // error: casting `&u8` as `u32` is invalid | +
Real 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 incompatible cast was attempted.
Erroneous code example:
let x = &0u8; // Here, `x` is a `&u8`.
let y: u32 = x as u32; // error: casting `&u8` as `u32` is invalid
When casting, keep in mind that only primitive types can be cast into each other. Example:
let x = &0u8;
let y: u32 = *x as u32; // We dereference it first and then cast it.
For more information about casts, take a look at the Type cast section in The Reference Book.
From rustc --explain E0606 (1.99.0), part of the Rust project, MIT or Apache-2.0. Official page.
Related errors
- E0061this function takes N arguments but M were supplied
- E0412cannot find type in this scope
- E0515cannot return reference to local variable
- E0728await is only allowed inside async functions and blocks
- E0591Per [RFC 401][rfc401], if you have a function declaration `foo`:
- E0605non-primitive cast
- E0618expected function, found
- E0627yield expression outside of coroutine literal
Up next
Often hit nextE0061: this function takes N arguments but M were suppliedA related error from the same family.Read it next →Did this answer your question?