Rust errors / Patterns and matching
Rust compiler error · checked with rustc 1.99.0
Rust error E0381: used binding `x` isn't initialized
What it meansIt is not allowed to use or capture an uninitialized variable.
What rustc prints
error[E0381]: used binding `x` isn't initialized --> main.rs:3:13 | 2 | let x: i32; | - binding declared here but left uninitialized 3 | let y = x; // error, use of possibly-uninitialized variable | ^ `x` used here but it isn't initialized | help: consider assigning a value | 2 | let x: i32 = 42; | ++++
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 use or capture an uninitialized variable.
Erroneous code example:
fn main() {
let x: i32;
let y = x; // error, use of possibly-uninitialized variable
}
To fix this, ensure that any declared variables are initialized before being used. Example:
fn main() {
let x: i32 = 0;
let y = x; // ok!
}From rustc --explain E0381 (1.99.0), part of the Rust project, MIT or Apache-2.0. Official page.
Related errors
Up next
Often hit nextE0004: non-exhaustive patternsA related error from the same family.Read it next →Did this answer your question?