diff options
Diffstat (limited to 'compiler/rustc_error_codes/src/error_codes/E0027.md')
-rw-r--r-- | compiler/rustc_error_codes/src/error_codes/E0027.md | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/compiler/rustc_error_codes/src/error_codes/E0027.md b/compiler/rustc_error_codes/src/error_codes/E0027.md new file mode 100644 index 000000000..a8b1340ca --- /dev/null +++ b/compiler/rustc_error_codes/src/error_codes/E0027.md @@ -0,0 +1,39 @@ +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, .. } => {} +} +``` |