about summary refs log tree commit diff
path: root/src/test/ui/parser
diff options
context:
space:
mode:
authorMazdak Farrokhzad <twingoow@gmail.com>2019-08-27 19:51:21 +0200
committerMazdak Farrokhzad <twingoow@gmail.com>2019-08-27 19:51:21 +0200
commitdbbe3363c94b120d1eba9cba01dadddd862716b8 (patch)
tree7a1397560a9ed462b36de1e31cecc2d03f543432 /src/test/ui/parser
parentf908aa9e8000dd7fd2c3de54fe1d914fddf4fe92 (diff)
downloadrust-dbbe3363c94b120d1eba9cba01dadddd862716b8.tar.gz
rust-dbbe3363c94b120d1eba9cba01dadddd862716b8.zip
Ensure 'let mut ;' where ':pat' is banned.
Diffstat (limited to 'src/test/ui/parser')
-rw-r--r--src/test/ui/parser/mut-patterns.rs8
-rw-r--r--src/test/ui/parser/mut-patterns.stderr11
2 files changed, 18 insertions, 1 deletions
diff --git a/src/test/ui/parser/mut-patterns.rs b/src/test/ui/parser/mut-patterns.rs
index 87e127f9d36..0c78ca726e0 100644
--- a/src/test/ui/parser/mut-patterns.rs
+++ b/src/test/ui/parser/mut-patterns.rs
@@ -32,4 +32,12 @@ pub fn main() {
     let mut W(mut a, W(b, W(ref c, W(d, B { box f }))))
     //~^ ERROR `mut` must be attached to each individual binding
         = W(0, W(1, W(2, W(3, B { f: Box::new(4u8) }))));
+
+    // Make sure we don't accidentally allow `mut $p` where `$p:pat`.
+    macro_rules! foo {
+        ($p:pat) => {
+            let mut $p = 0; //~ ERROR expected identifier, found `x`
+        }
+    }
+    foo!(x);
 }
diff --git a/src/test/ui/parser/mut-patterns.stderr b/src/test/ui/parser/mut-patterns.stderr
index a251e2908f0..a1293129e2e 100644
--- a/src/test/ui/parser/mut-patterns.stderr
+++ b/src/test/ui/parser/mut-patterns.stderr
@@ -64,5 +64,14 @@ error: `mut` must be attached to each individual binding
 LL |     let mut W(mut a, W(b, W(ref c, W(d, B { box f }))))
    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: add `mut` to each binding: `W(mut a, W(mut b, W(ref c, W(mut d, B { box mut f }))))`
 
-error: aborting due to 9 previous errors
+error: expected identifier, found `x`
+  --> $DIR/mut-patterns.rs:39:21
+   |
+LL |             let mut $p = 0;
+   |                     ^^ expected identifier
+...
+LL |     foo!(x);
+   |     -------- in this macro invocation
+
+error: aborting due to 10 previous errors