summaryrefslogtreecommitdiffstats
path: root/compiler/rustc_error_codes/src/error_codes/E0164.md
diff options
context:
space:
mode:
Diffstat (limited to 'compiler/rustc_error_codes/src/error_codes/E0164.md')
-rw-r--r--compiler/rustc_error_codes/src/error_codes/E0164.md44
1 files changed, 44 insertions, 0 deletions
diff --git a/compiler/rustc_error_codes/src/error_codes/E0164.md b/compiler/rustc_error_codes/src/error_codes/E0164.md
new file mode 100644
index 000000000..48bb6f4b3
--- /dev/null
+++ b/compiler/rustc_error_codes/src/error_codes/E0164.md
@@ -0,0 +1,44 @@
+Something which is neither a tuple struct nor a tuple variant was used as a
+pattern.
+
+Erroneous code example:
+
+```compile_fail,E0164
+enum A {
+ B,
+ C,
+}
+
+impl A {
+ fn new() {}
+}
+
+fn bar(foo: A) {
+ match foo {
+ A::new() => (), // error!
+ _ => {}
+ }
+}
+```
+
+This error means that an attempt was made to match something which is neither a
+tuple struct nor a tuple variant. Only these two elements are allowed as a
+pattern:
+
+```
+enum A {
+ B,
+ C,
+}
+
+impl A {
+ fn new() {}
+}
+
+fn bar(foo: A) {
+ match foo {
+ A::B => (), // ok!
+ _ => {}
+ }
+}
+```