| 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! |
| _ => {} |
| } |
| ``` |