Rust errors / Types and traits
Rust compiler error · checked with rustc 1.99.0
Rust error E0574: expected struct, variant or union type, found module `mordor`
What it meansSomething other than a struct, variant or union has been used when one was expected.
What rustc prints
error[E0574]: expected struct, variant or union type, found module `mordor`
--> main.rs:5:14
|
5 | let sauron = mordor { x: () }; // error!
| ^^^^^^ not a struct, variant or union typeReal 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
Something other than a struct, variant or union has been used when one was expected.
Erroneous code example:
mod mordor {}
let sauron = mordor { x: () }; // error!
enum Jak {
Daxter { i: isize },
}
let eco = Jak::Daxter { i: 1 };
match eco {
Jak { i } => {} // error!
}
In all these errors, a type was expected. For example, in the first error, we tried to instantiate the mordor module, which is impossible. If you want to instantiate a type inside a module, you can do it as follow:
mod mordor {
pub struct TheRing {
pub x: usize,
}
}
let sauron = mordor::TheRing { x: 1 }; // ok!
In the second error, we tried to bind the Jak enum directly, which is not possible: you can only bind one of its variants. To do so:
enum Jak {
Daxter { i: isize },
}
let eco = Jak::Daxter { i: 1 };
match eco {
Jak::Daxter { i } => {} // ok!
}From rustc --explain E0574 (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
- E0569requires an `unsafe impl` declaration due to `#[may_dangle]` attribute
- E0573expected type, found variant `Dragon::Born`
- E0575cannot find associated type `Mythology` in trait `Age`
- E0576cannot find associated type `You` in trait `Hello`
Up next
Often hit nextE0308: mismatched typesA related error from the same family.Read it next →Did this answer your question?