From 12ae282987762a71cf146efa3fb6c6fcf4956475 Mon Sep 17 00:00:00 2001
From: Michael Goulet <michael@errs.io>
Date: Wed, 10 Jul 2024 18:55:51 -0400
Subject: [PATCH] Fix diagnostic and add a test for it

---
 compiler/rustc_resolve/src/errors.rs         | 2 +-
 tests/ui/tool-attributes/invalid-tool.rs     | 6 ++++++
 tests/ui/tool-attributes/invalid-tool.stderr | 8 ++++++++
 3 files changed, 15 insertions(+), 1 deletion(-)
 create mode 100644 tests/ui/tool-attributes/invalid-tool.rs
 create mode 100644 tests/ui/tool-attributes/invalid-tool.stderr

diff --git a/compiler/rustc_resolve/src/errors.rs b/compiler/rustc_resolve/src/errors.rs
index 0620f3d709eb2..cd6503ae444a3 100644
--- a/compiler/rustc_resolve/src/errors.rs
+++ b/compiler/rustc_resolve/src/errors.rs
@@ -1089,8 +1089,8 @@ pub(crate) struct ToolWasAlreadyRegistered {
 #[derive(Diagnostic)]
 #[diag(resolve_tool_only_accepts_identifiers)]
 pub(crate) struct ToolOnlyAcceptsIdentifiers {
-    #[label]
     #[primary_span]
+    #[label]
     pub(crate) span: Span,
     pub(crate) tool: Symbol,
 }
diff --git a/tests/ui/tool-attributes/invalid-tool.rs b/tests/ui/tool-attributes/invalid-tool.rs
new file mode 100644
index 0000000000000..125333231d217
--- /dev/null
+++ b/tests/ui/tool-attributes/invalid-tool.rs
@@ -0,0 +1,6 @@
+#![feature(register_tool)]
+
+#![register_tool(1)]
+//~^ ERROR `register_tool` only accepts identifiers
+
+fn main() {}
diff --git a/tests/ui/tool-attributes/invalid-tool.stderr b/tests/ui/tool-attributes/invalid-tool.stderr
new file mode 100644
index 0000000000000..deafa6d167c20
--- /dev/null
+++ b/tests/ui/tool-attributes/invalid-tool.stderr
@@ -0,0 +1,8 @@
+error: `register_tool` only accepts identifiers
+  --> $DIR/invalid-tool.rs:3:18
+   |
+LL | #![register_tool(1)]
+   |                  ^ not an identifier
+
+error: aborting due to 1 previous error
+