Rust errors / Everything else
Rust compiler error · checked with rustc 1.99.0
Rust error E0054: cannot cast `i32` as `bool`
What it meansIt is not allowed to cast to a bool.
What rustc prints
error[E0054]: cannot cast `i32` as `bool` --> main.rs:6:20 | 6 | let x_is_nonzero = x as bool; | ^^^^^^^^^ | help: compare with zero instead | 6 - let x_is_nonzero = x as bool; 6 + let x_is_nonzero = x != 0; |
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
It is not allowed to cast to a bool.
Erroneous code example:
let x = 5;
// Not allowed, won't compile
let x_is_nonzero = x as bool;
If you are trying to cast a numeric type to a bool, you can compare it with zero instead:
let x = 5;
// Ok
let x_is_nonzero = x != 0;From rustc --explain E0054 (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
- E0040explicit use of destructor method
- E0045C-variadic functions with the "Rust" calling convention are not supported
- E0057this function takes 1 argument but 0 arguments were supplied
- E0060this function takes at least 1 argument but 0 arguments were supplied
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?