| A struct pattern attempted to extract a nonexistent field from a struct. |
| |
| Erroneous code example: |
| |
| ```compile_fail,E0026 |
| struct Thing { |
| x: u32, |
| y: u32, |
| } |
| |
| let thing = Thing { x: 0, y: 0 }; |
| |
| match thing { |
| Thing { x, z } => {} // error: `Thing::z` field doesn't exist |
| } |
| ``` |
| |
| If you are using shorthand field patterns but want to refer to the struct field |
| by a different name, you should rename it explicitly. Struct fields are |
| identified by the name used before the colon `:` so struct patterns should |
| resemble the declaration of the struct type being matched. |
| |
| ``` |
| struct Thing { |
| x: u32, |
| y: u32, |
| } |
| |
| let thing = Thing { x: 0, y: 0 }; |
| |
| match thing { |
| Thing { x, y: z } => {} // we renamed `y` to `z` |
| } |
| ``` |