about summary refs log tree commit diff
path: root/src/test
diff options
context:
space:
mode:
authorAustin Bonander <austin.bonander@gmail.com>2018-10-03 14:24:31 -0700
committerAustin Bonander <austin.bonander@gmail.com>2018-10-05 02:47:57 -0700
commit9da428dad8eefa8a821214bc0fe0d4159ba4efed (patch)
tree29615817e497aae756a4b8572411f7a90d856ee5 /src/test
parenta57f1c9c955177e2a7563dd59f9e3a70458e2be1 (diff)
downloadrust-9da428dad8eefa8a821214bc0fe0d4159ba4efed.tar.gz
rust-9da428dad8eefa8a821214bc0fe0d4159ba4efed.zip
make `Parser::parse_foreign_item()` return a foreign item or error
closes #54441
Diffstat (limited to 'src/test')
-rw-r--r--src/test/parse-fail/duplicate-visibility.rs2
-rw-r--r--src/test/ui/macros/issue-54441.rs13
-rw-r--r--src/test/ui/macros/issue-54441.stderr14
3 files changed, 28 insertions, 1 deletions
diff --git a/src/test/parse-fail/duplicate-visibility.rs b/src/test/parse-fail/duplicate-visibility.rs
index 6899caa7153..cc3286fe705 100644
--- a/src/test/parse-fail/duplicate-visibility.rs
+++ b/src/test/parse-fail/duplicate-visibility.rs
@@ -10,7 +10,7 @@
 
 // compile-flags: -Z parse-only
 
-// error-pattern:expected one of `(`, `fn`, `static`, `type`, or `}` here
+// error-pattern:expected one of `(`, `fn`, `static`, or `type`
 extern {
     pub pub fn foo();
 }
diff --git a/src/test/ui/macros/issue-54441.rs b/src/test/ui/macros/issue-54441.rs
new file mode 100644
index 00000000000..b45aedb549e
--- /dev/null
+++ b/src/test/ui/macros/issue-54441.rs
@@ -0,0 +1,13 @@
+#![feature(macros_in_extern)]
+
+macro_rules! m {
+    () => {
+        let //~ ERROR expected
+    };
+}
+
+extern "C" {
+    m!();
+}
+
+fn main() {}
diff --git a/src/test/ui/macros/issue-54441.stderr b/src/test/ui/macros/issue-54441.stderr
new file mode 100644
index 00000000000..aa1edb2cf89
--- /dev/null
+++ b/src/test/ui/macros/issue-54441.stderr
@@ -0,0 +1,14 @@
+error: expected one of `crate`, `fn`, `pub`, `static`, or `type`, found `let`
+  --> $DIR/issue-54441.rs:5:9
+   |
+LL | #![feature(macros_in_extern)]
+   | - expected one of `crate`, `fn`, `pub`, `static`, or `type` here
+...
+LL |         let //~ ERROR expected
+   |         ^^^ unexpected token
+...
+LL |     m!();
+   |     ----- in this macro invocation
+
+error: aborting due to previous error
+