Rust errors / Types and traits
Rust compiler error · checked with rustc 1.99.0
Rust error E0422: cannot find struct, variant or union type `Foo` in this scope
What it meansAn identifier that is neither defined nor a struct was used.
What rustc prints
error[E0422]: cannot find struct, variant or union type `Foo` in this scope
--> main.rs:2:13
|
2 | let x = Foo { x: 1, y: 2 };
| ^^^ not found in this scopeReal 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 identifier that is neither defined nor a struct was used.
Erroneous code example:
fn main () {
let x = Foo { x: 1, y: 2 };
}
In this case, Foo is undefined, so it inherently isn't anything, and definitely not a struct.
fn main () {
let foo = 1;
let x = foo { x: 1, y: 2 };
}
In this case, foo is defined, but is not a struct, so Rust can't use it as one.
From rustc --explain E0422 (1.99.0), part of the Rust project, MIT or Apache-2.0. Official page.
Related errors
- E0308mismatched types
- E0277the trait bound is not satisfied
- E0599no method named X found in the current scope
- E0433failed to resolve
- E0415identifier `f` is bound more than once in this parameter list
- E0416identifier `x` is bound more than once in the same pattern
- E0428the name `Bar` is defined multiple times
Up next
Often hit nextE0308: mismatched typesA related error from the same family.Read it next →Did this answer your question?