about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--tests/ui/attributes/fn-align-nameres-ambiguity-143834.rs21
-rw-r--r--tests/ui/attributes/fn-align-nameres-ambiguity-143834.stderr22
2 files changed, 43 insertions, 0 deletions
diff --git a/tests/ui/attributes/fn-align-nameres-ambiguity-143834.rs b/tests/ui/attributes/fn-align-nameres-ambiguity-143834.rs
new file mode 100644
index 00000000000..5629f92c468
--- /dev/null
+++ b/tests/ui/attributes/fn-align-nameres-ambiguity-143834.rs
@@ -0,0 +1,21 @@
+//~ NOTE `align` could refer to a built-in attribute
+
+// Anti-regression test to demonstrate that at least we mitigated breakage from adding a new
+// `#[align]` built-in attribute.
+
+// Needs edition >= 2018 macro use behavior.
+//@ edition: 2018
+
+macro_rules! align {
+    //~^ NOTE `align` could also refer to the macro defined here
+    () => {
+        /* .. */
+    };
+}
+
+pub(crate) use align;
+//~^ ERROR `align` is ambiguous
+//~| NOTE ambiguous name
+//~| NOTE ambiguous because of a name conflict with a builtin attribute
+
+fn main() {}
diff --git a/tests/ui/attributes/fn-align-nameres-ambiguity-143834.stderr b/tests/ui/attributes/fn-align-nameres-ambiguity-143834.stderr
new file mode 100644
index 00000000000..304537173a8
--- /dev/null
+++ b/tests/ui/attributes/fn-align-nameres-ambiguity-143834.stderr
@@ -0,0 +1,22 @@
+error[E0659]: `align` is ambiguous
+  --> $DIR/fn-align-nameres-ambiguity-143834.rs:16:16
+   |
+LL | pub(crate) use align;
+   |                ^^^^^ ambiguous name
+   |
+   = note: ambiguous because of a name conflict with a builtin attribute
+   = note: `align` could refer to a built-in attribute
+note: `align` could also refer to the macro defined here
+  --> $DIR/fn-align-nameres-ambiguity-143834.rs:9:1
+   |
+LL | / macro_rules! align {
+LL | |
+LL | |     () => {
+LL | |         /* .. */
+LL | |     };
+LL | | }
+   | |_^
+
+error: aborting due to 1 previous error
+
+For more information about this error, try `rustc --explain E0659`.