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 }