summaryrefslogtreecommitdiffstats
path: root/src/test/ui/array-slice-vec/slice-pat-type-mismatches.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/ui/array-slice-vec/slice-pat-type-mismatches.rs')
-rw-r--r--src/test/ui/array-slice-vec/slice-pat-type-mismatches.rs36
1 files changed, 36 insertions, 0 deletions
diff --git a/src/test/ui/array-slice-vec/slice-pat-type-mismatches.rs b/src/test/ui/array-slice-vec/slice-pat-type-mismatches.rs
new file mode 100644
index 000000000..521b898e7
--- /dev/null
+++ b/src/test/ui/array-slice-vec/slice-pat-type-mismatches.rs
@@ -0,0 +1,36 @@
+fn main() {
+ match "foo".to_string() {
+ ['f', 'o', ..] => {}
+ //~^ ERROR expected an array or slice, found `String`
+ _ => { }
+ };
+
+ // Note that this one works with default binding modes.
+ match &[0, 1, 2] {
+ [..] => {}
+ };
+
+ match &[0, 1, 2] {
+ &[..] => {} // ok
+ };
+
+ match [0, 1, 2] {
+ [0] => {}, //~ ERROR pattern requires
+
+ [0, 1, x @ ..] => {
+ let a: [_; 1] = x;
+ }
+ [0, 1, 2, 3, x @ ..] => {} //~ ERROR pattern requires
+ };
+
+ match does_not_exist { //~ ERROR cannot find value `does_not_exist` in this scope
+ [] => {}
+ };
+}
+
+fn another_fn_to_avoid_suppression() {
+ match Default::default()
+ {
+ [] => {} //~ ERROR type annotations needed
+ };
+}