about summary refs log tree commit diff
diff options
context:
space:
mode:
authorLeón Orell Valerian Liehr <me@fmease.dev>2025-03-19 22:44:19 +0100
committerLeón Orell Valerian Liehr <me@fmease.dev>2025-03-19 23:29:35 +0100
commitb5069da9df85b8f374a3fd59c2145396e374537d (patch)
treed7925a3d511caea24de5a8067b971ff10271d01a
parent1370611c0ae0c7232bcd073e15046bae6b519e50 (diff)
downloadrust-b5069da9df85b8f374a3fd59c2145396e374537d.tar.gz
rust-b5069da9df85b8f374a3fd59c2145396e374537d.zip
Check attrs: Don't try to retrieve the name of list stems
-rw-r--r--compiler/rustc_passes/src/check_attr.rs3
-rw-r--r--tests/ui/rustdoc/doc-alias-use-item-list-stem.rs11
2 files changed, 12 insertions, 2 deletions
diff --git a/compiler/rustc_passes/src/check_attr.rs b/compiler/rustc_passes/src/check_attr.rs
index d1917f39c07..bba172ce144 100644
--- a/compiler/rustc_passes/src/check_attr.rs
+++ b/compiler/rustc_passes/src/check_attr.rs
@@ -952,8 +952,7 @@ impl<'tcx> CheckAttrVisitor<'tcx> {
             tcx.dcx().emit_err(errors::DocAliasBadLocation { span, attr_str, location });
             return;
         }
-        let item_name = self.tcx.hir_name(hir_id);
-        if item_name == doc_alias {
+        if self.tcx.hir_opt_name(hir_id) == Some(doc_alias) {
             tcx.dcx().emit_err(errors::DocAliasNotAnAlias { span, attr_str });
             return;
         }
diff --git a/tests/ui/rustdoc/doc-alias-use-item-list-stem.rs b/tests/ui/rustdoc/doc-alias-use-item-list-stem.rs
new file mode 100644
index 00000000000..ef310843e21
--- /dev/null
+++ b/tests/ui/rustdoc/doc-alias-use-item-list-stem.rs
@@ -0,0 +1,11 @@
+// Check that we don't ICE on `#[doc(alias)]`es placed on use items with list stems.
+// issue: <https://github.com/rust-lang/rust/issues/138723>
+//@ check-pass
+
+#[doc(alias = "empty")]
+pub use {};
+
+#[doc(alias = "id")]
+pub use {std::convert::identity};
+
+fn main() {}