| An unknown tuple struct/variant has been used. | |
| Erroneous code example: | |
| ```compile_fail,E0531 | |
| 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: | |
| ```edition2018 | |
| 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: | |
| ```edition2018 | |
| struct Type(u32); | |
| enum Foo { | |
| Bar(u32), | |
| } | |
| use Foo::*; | |
| let Type(x) = Type(12); // ok! | |
| match Type(12) { | |
| Type(x) => {} // ok! | |
| _ => {} | |
| } | |
| ``` |