about summary refs log tree commit diff
diff options
context:
space:
mode:
authorJonathan Turner <jonathandturner@users.noreply.github.com>2016-09-02 15:28:52 -0700
committerGitHub <noreply@github.com>2016-09-02 15:28:52 -0700
commit6736bad424923cd2915ff79e891e1ff02f16574b (patch)
tree296b14088e5717d909a708e59a23ef13f62ed178
parentb9996909acc3624be0dd6d31834c5a09c242bd32 (diff)
parent7cd4e7ff0b2e0872ed5dac00f3b680e7dbc3d24b (diff)
downloadrust-6736bad424923cd2915ff79e891e1ff02f16574b.tar.gz
rust-6736bad424923cd2915ff79e891e1ff02f16574b.zip
Rollup merge of #36205 - EugeneGonzalez:E0528, r=jonathandturner
Fixed E0528 label and unit test

Fixes #36194 part of #35233.

r? @jonathandturner
-rw-r--r--src/librustc_typeck/check/_match.rs9
-rw-r--r--src/test/compile-fail/E0528.rs4
2 files changed, 9 insertions, 4 deletions
diff --git a/src/librustc_typeck/check/_match.rs b/src/librustc_typeck/check/_match.rs
index 225468cb9f4..e1ce89f0ab5 100644
--- a/src/librustc_typeck/check/_match.rs
+++ b/src/librustc_typeck/check/_match.rs
@@ -248,9 +248,12 @@ impl<'a, 'gcx, 'tcx> FnCtxt<'a, 'gcx, 'tcx> {
                         } else if let Some(rest) = size.checked_sub(min_len) {
                             (inner_ty, tcx.mk_array(inner_ty, rest))
                         } else {
-                            span_err!(tcx.sess, pat.span, E0528,
-                                      "pattern requires at least {} elements but array has {}",
-                                      min_len, size);
+                            struct_span_err!(tcx.sess, pat.span, E0528,
+                                    "pattern requires at least {} elements but array has {}",
+                                    min_len, size)
+                                .span_label(pat.span,
+                                    &format!("pattern cannot match array of {} elements", size))
+                                .emit();
                             (inner_ty, tcx.types.err)
                         }
                     }
diff --git a/src/test/compile-fail/E0528.rs b/src/test/compile-fail/E0528.rs
index 27187bb5aba..e912650f112 100644
--- a/src/test/compile-fail/E0528.rs
+++ b/src/test/compile-fail/E0528.rs
@@ -13,7 +13,9 @@
 fn main() {
     let r = &[1, 2];
     match r {
-        &[a, b, c, rest..] => { //~ ERROR E0528
+        &[a, b, c, rest..] => {
+        //~^ ERROR E0528
+        //~| NOTE pattern cannot match array of 2 elements
         }
     }
 }