| A pattern for a struct fails to specify a sub-pattern for every one of the | |
| struct's fields. | |
| Erroneous code example: | |
| ```compile_fail,E0027 | |
| struct Dog { | |
| name: String, | |
| age: u32, | |
| } | |
| let d = Dog { name: "Rusty".to_string(), age: 8 }; | |
| // This is incorrect. | |
| match d { | |
| Dog { age: x } => {} | |
| } | |
| ``` | |
| To fix this error, ensure that each field from the struct's definition is | |
| mentioned in the pattern, or use `..` to ignore unwanted fields. Example: | |
| ``` | |
| struct Dog { | |
| name: String, | |
| age: u32, | |
| } | |
| let d = Dog { name: "Rusty".to_string(), age: 8 }; | |
| match d { | |
| Dog { name: ref n, age: x } => {} | |
| } | |
| // This is also correct (ignore unused fields). | |
| match d { | |
| Dog { age: x, .. } => {} | |
| } | |
| ``` |