summaryrefslogtreecommitdiffstats
path: root/compiler/rustc_error_codes/src/error_codes/E0769.md
diff options
context:
space:
mode:
Diffstat (limited to 'compiler/rustc_error_codes/src/error_codes/E0769.md')
-rw-r--r--compiler/rustc_error_codes/src/error_codes/E0769.md47
1 files changed, 47 insertions, 0 deletions
diff --git a/compiler/rustc_error_codes/src/error_codes/E0769.md b/compiler/rustc_error_codes/src/error_codes/E0769.md
new file mode 100644
index 000000000..4a3b674b0
--- /dev/null
+++ b/compiler/rustc_error_codes/src/error_codes/E0769.md
@@ -0,0 +1,47 @@
+A tuple struct or tuple variant was used in a pattern as if it were a struct or
+struct variant.
+
+Erroneous code example:
+
+```compile_fail,E0769
+enum E {
+ A(i32),
+}
+
+let e = E::A(42);
+
+match e {
+ E::A { number } => { // error!
+ println!("{}", number);
+ }
+}
+```
+
+To fix this error, you can use the tuple pattern:
+
+```
+# enum E {
+# A(i32),
+# }
+# let e = E::A(42);
+match e {
+ E::A(number) => { // ok!
+ println!("{}", number);
+ }
+}
+```
+
+Alternatively, you can also use the struct pattern by using the correct field
+names and binding them to new identifiers:
+
+```
+# enum E {
+# A(i32),
+# }
+# let e = E::A(42);
+match e {
+ E::A { 0: number } => { // ok!
+ println!("{}", number);
+ }
+}
+```