about summary refs log tree commit diff
path: root/src/test/ui/macros
diff options
context:
space:
mode:
authorVadim Petrochenkov <vadim.petrochenkov@gmail.com>2019-07-08 21:58:42 +0300
committerVadim Petrochenkov <vadim.petrochenkov@gmail.com>2019-07-11 00:35:01 +0300
commite86e5cb38ffb9a55f6d9ab6ebda2d384fb154626 (patch)
tree15765a41615dd4f84e30be843377182fc6a47253 /src/test/ui/macros
parent7b74d72d9a4414f088d7f638343d5d8a7c67084a (diff)
downloadrust-e86e5cb38ffb9a55f6d9ab6ebda2d384fb154626.tar.gz
rust-e86e5cb38ffb9a55f6d9ab6ebda2d384fb154626.zip
Add a regression test for #44692
Add a test for the issue resolved by removing `resolve_macro_path`

Add a test making sure that extern prelude entries introduced from an opaque macro are not visible anywhere, even it that macro

Fix test output after rebase
Diffstat (limited to 'src/test/ui/macros')
-rw-r--r--src/test/ui/macros/derive-in-eager-expansion-hang.rs14
-rw-r--r--src/test/ui/macros/derive-in-eager-expansion-hang.stderr17
2 files changed, 31 insertions, 0 deletions
diff --git a/src/test/ui/macros/derive-in-eager-expansion-hang.rs b/src/test/ui/macros/derive-in-eager-expansion-hang.rs
new file mode 100644
index 00000000000..0729e14d5b2
--- /dev/null
+++ b/src/test/ui/macros/derive-in-eager-expansion-hang.rs
@@ -0,0 +1,14 @@
+// Regression test for the issue #44692
+
+macro_rules! hang { () => {
+    { //~ ERROR format argument must be a string literal
+        #[derive(Clone)]
+        struct S;
+
+        ""
+    }
+}}
+
+fn main() {
+    format_args!(hang!());
+}
diff --git a/src/test/ui/macros/derive-in-eager-expansion-hang.stderr b/src/test/ui/macros/derive-in-eager-expansion-hang.stderr
new file mode 100644
index 00000000000..1ef9427666b
--- /dev/null
+++ b/src/test/ui/macros/derive-in-eager-expansion-hang.stderr
@@ -0,0 +1,17 @@
+error: format argument must be a string literal
+  --> $DIR/derive-in-eager-expansion-hang.rs:4:5
+   |
+LL | /     {
+LL | |         #[derive(Clone)]
+LL | |         struct S;
+LL | |
+LL | |         ""
+LL | |     }
+   | |_____^
+help: you might be missing a string literal to format with
+   |
+LL |     format_args!("{}", hang!());
+   |                  ^^^^^
+
+error: aborting due to previous error
+