summaryrefslogtreecommitdiffstats
path: root/tests/ui/issues/issue-5100.rs
diff options
context:
space:
mode:
Diffstat (limited to 'tests/ui/issues/issue-5100.rs')
-rw-r--r--tests/ui/issues/issue-5100.rs57
1 files changed, 57 insertions, 0 deletions
diff --git a/tests/ui/issues/issue-5100.rs b/tests/ui/issues/issue-5100.rs
new file mode 100644
index 000000000..69ed4b0e4
--- /dev/null
+++ b/tests/ui/issues/issue-5100.rs
@@ -0,0 +1,57 @@
+#![feature(box_patterns)]
+
+
+enum A { B, C }
+
+fn main() {
+ match (true, false) {
+ A::B => (),
+//~^ ERROR mismatched types
+//~| expected tuple, found enum `A`
+//~| expected tuple `(bool, bool)`
+//~| found enum `A`
+ _ => ()
+ }
+
+ match (true, false) {
+ (true, false, false) => ()
+//~^ ERROR mismatched types
+//~| expected a tuple with 2 elements, found one with 3 elements
+//~| expected tuple `(bool, bool)`
+//~| found tuple `(_, _, _)`
+ }
+
+ match (true, false) {
+ (true, false, false) => ()
+//~^ ERROR mismatched types
+//~| expected a tuple with 2 elements, found one with 3 elements
+//~| expected tuple `(bool, bool)`
+//~| found tuple `(_, _, _)`
+ }
+
+ match (true, false) {
+ box (true, false) => ()
+//~^ ERROR mismatched types
+//~| expected tuple `(bool, bool)`
+//~| found struct `Box<_>`
+ }
+
+ match (true, false) {
+ &(true, false) => ()
+//~^ ERROR mismatched types
+//~| expected tuple, found reference
+//~| expected tuple `(bool, bool)`
+//~| found reference `&_`
+ }
+
+
+ let v = [('a', 'b') //~ ERROR expected function, found `(char, char)`
+ ('c', 'd'),
+ ('e', 'f')];
+
+ for &(x,y) in &v {} // should be OK
+
+ // Make sure none of the errors above were fatal
+ let x: char = true; //~ ERROR mismatched types
+ //~| expected `char`, found `bool`
+}