Rust errors / Types and traits
Rust compiler error · checked with rustc 1.99.0
Rust error E0531: cannot find tuple struct or tuple variant `Type` in this scope
What it meansAn unknown tuple struct/variant has been used.
What rustc prints
error[E0531]: cannot find tuple struct or tuple variant `Type` in this scope
--> main.rs:3:5
|
3 | let Type(x) = Type(12); // error!
| ^^^^ 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 unknown tuple struct/variant has been used.
Erroneous code example:
let Type(x) = Type(12); // error!
match Bar(12) {
Bar(x) => {} // error!
_ => {}
}
In most cases, it's either a forgotten import or a typo. However, let's look at how you can have such a type:
struct Type(u32); // this is a tuple struct
enum Foo {
Bar(u32), // this is a tuple variant
}
use Foo::*; // To use Foo's variant directly, we need to import them in
// the scope.
Either way, it should work fine with our previous code:
struct Type(u32);
enum Foo {
Bar(u32),
}
use Foo::*;
let Type(x) = Type(12); // ok!
match Type(12) {
Type(x) => {} // ok!
_ => {}
}From rustc --explain E0531 (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
- E0525expected a closure that implements the `Fn` trait, but this closure only implements `FnOnce`
- E0529expected an array or slice, found `f32`
- E0561patterns aren't allowed in function pointer types
- E0562`impl Trait` is not allowed in the type of variable bindings
Up next
Often hit nextE0308: mismatched typesA related error from the same family.Read it next →Did this answer your question?