about summary refs log tree commit diff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/ui/attributes/crate-type-macro-empty.rs7
-rw-r--r--tests/ui/attributes/crate-type-macro-empty.stderr20
-rw-r--r--tests/ui/attributes/crate-type-macro-not-crate.rs9
-rw-r--r--tests/ui/attributes/crate-type-macro-not-crate.stderr17
-rw-r--r--tests/ui/attributes/crate-type-macro-not-found.rs8
-rw-r--r--tests/ui/attributes/crate-type-macro-not-found.stderr14
6 files changed, 75 insertions, 0 deletions
diff --git a/tests/ui/attributes/crate-type-macro-empty.rs b/tests/ui/attributes/crate-type-macro-empty.rs
new file mode 100644
index 00000000000..5ff7fc002fd
--- /dev/null
+++ b/tests/ui/attributes/crate-type-macro-empty.rs
@@ -0,0 +1,7 @@
+// Tests for the issue in #137589
+#[crate_type = foo!()]
+//~^ ERROR cannot find macro `foo` in this scope
+
+macro_rules! foo {} //~ ERROR unexpected end of macro invocation
+
+fn main() {}
diff --git a/tests/ui/attributes/crate-type-macro-empty.stderr b/tests/ui/attributes/crate-type-macro-empty.stderr
new file mode 100644
index 00000000000..e48d3d95470
--- /dev/null
+++ b/tests/ui/attributes/crate-type-macro-empty.stderr
@@ -0,0 +1,20 @@
+error: unexpected end of macro invocation
+  --> $DIR/crate-type-macro-empty.rs:5:1
+   |
+LL | macro_rules! foo {}
+   | ^^^^^^^^^^^^^^^^^^^ missing tokens in macro arguments
+
+error: cannot find macro `foo` in this scope
+  --> $DIR/crate-type-macro-empty.rs:2:16
+   |
+LL | #[crate_type = foo!()]
+   |                ^^^ consider moving the definition of `foo` before this call
+   |
+note: a macro with the same name exists, but it appears later
+  --> $DIR/crate-type-macro-empty.rs:5:14
+   |
+LL | macro_rules! foo {}
+   |              ^^^
+
+error: aborting due to 2 previous errors
+
diff --git a/tests/ui/attributes/crate-type-macro-not-crate.rs b/tests/ui/attributes/crate-type-macro-not-crate.rs
new file mode 100644
index 00000000000..e5eb22d6f6e
--- /dev/null
+++ b/tests/ui/attributes/crate-type-macro-not-crate.rs
@@ -0,0 +1,9 @@
+// Tests for the issue in #137589
+
+
+macro_rules! foo {
+    ($x:expr) => {"rlib"}
+}
+
+#[crate_type = foo!()] //~ ERROR unexpected end of macro invocation
+fn main() {}
diff --git a/tests/ui/attributes/crate-type-macro-not-crate.stderr b/tests/ui/attributes/crate-type-macro-not-crate.stderr
new file mode 100644
index 00000000000..ce188b3eef5
--- /dev/null
+++ b/tests/ui/attributes/crate-type-macro-not-crate.stderr
@@ -0,0 +1,17 @@
+error: unexpected end of macro invocation
+  --> $DIR/crate-type-macro-not-crate.rs:8:16
+   |
+LL | macro_rules! foo {
+   | ---------------- when calling this macro
+...
+LL | #[crate_type = foo!()]
+   |                ^^^^^^ missing tokens in macro arguments
+   |
+note: while trying to match meta-variable `$x:expr`
+  --> $DIR/crate-type-macro-not-crate.rs:5:6
+   |
+LL |     ($x:expr) => {"rlib"}
+   |      ^^^^^^^
+
+error: aborting due to 1 previous error
+
diff --git a/tests/ui/attributes/crate-type-macro-not-found.rs b/tests/ui/attributes/crate-type-macro-not-found.rs
new file mode 100644
index 00000000000..824468c0e85
--- /dev/null
+++ b/tests/ui/attributes/crate-type-macro-not-found.rs
@@ -0,0 +1,8 @@
+// Tests for the issue in #137589
+#[crate_type = foo!()] //~ ERROR cannot find macro `foo` in this scope
+
+macro_rules! foo {
+    ($x:expr) => {"rlib"}
+}
+
+fn main() {}
diff --git a/tests/ui/attributes/crate-type-macro-not-found.stderr b/tests/ui/attributes/crate-type-macro-not-found.stderr
new file mode 100644
index 00000000000..a4967e4f12e
--- /dev/null
+++ b/tests/ui/attributes/crate-type-macro-not-found.stderr
@@ -0,0 +1,14 @@
+error: cannot find macro `foo` in this scope
+  --> $DIR/crate-type-macro-not-found.rs:2:16
+   |
+LL | #[crate_type = foo!()]
+   |                ^^^ consider moving the definition of `foo` before this call
+   |
+note: a macro with the same name exists, but it appears later
+  --> $DIR/crate-type-macro-not-found.rs:4:14
+   |
+LL | macro_rules! foo {
+   |              ^^^
+
+error: aborting due to 1 previous error
+