diff --git a/src/librustdoc/html/render.rs b/src/librustdoc/html/render.rs
index ad059463aa43a..3c72fdb5d9cb7 100644
--- a/src/librustdoc/html/render.rs
+++ b/src/librustdoc/html/render.rs
@@ -4063,11 +4063,25 @@ fn get_methods(
.filter_map(|item| match item.name {
Some(ref name) if !name.is_empty() && item.is_method() => {
if !for_deref || should_render_item(item, deref_mut) {
- Some(format!(
- "{}",
- get_next_url(used_links, format!("method.{}", name)),
- name
- ))
+ let mut emojis = String::new();
+ if let clean::FunctionItem(ref func) | clean::ForeignFunctionItem(ref func) = item.inner {
+ if func.header.unsafety == hir::Unsafety::Unsafe {
+ emojis += "⚠";
+ }
+ }
+ if let Some(stab) = item.stability.as_ref().filter(|stab| stab.level == stability::Unstable) {
+ let is_rustc_private = stab.feature.as_deref() == Some("rustc_private");
+ emojis += if is_rustc_private { "⚙️" } else { "🔬" };
+ };
+ if item.deprecation().is_some() {
+ emojis += "⚰️";
+ }
+ if !emojis.is_empty() {
+ emojis.insert_str(0, "");
+ emojis.push_str("");
+ }
+ let url = get_next_url(used_links, format!("method.{}", name));
+ Some(format!("{}{}", url, name, emojis))
} else {
None
}