From 810fa1e812168b68e871bb194f77e5e4394a1b05 Mon Sep 17 00:00:00 2001 From: Ivan Tham Date: Sun, 5 Jan 2020 01:08:39 +0800 Subject: [PATCH 1/2] Add methods properties in emoji to sidebar Fix #67869 --- src/librustdoc/html/render.rs | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/src/librustdoc/html/render.rs b/src/librustdoc/html/render.rs index ad059463aa43a..baa4803e2ff16 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_ref().map(|s| &**s) == 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 } From 7568ac70a39561973be640495bf5901ce5a6ea5d Mon Sep 17 00:00:00 2001 From: Ivan Tham Date: Sun, 5 Jan 2020 22:29:11 +0800 Subject: [PATCH 2/2] Update src/librustdoc/html/render.rs Co-Authored-By: lzutao --- src/librustdoc/html/render.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/librustdoc/html/render.rs b/src/librustdoc/html/render.rs index baa4803e2ff16..3c72fdb5d9cb7 100644 --- a/src/librustdoc/html/render.rs +++ b/src/librustdoc/html/render.rs @@ -4070,7 +4070,7 @@ fn get_methods( } } if let Some(stab) = item.stability.as_ref().filter(|stab| stab.level == stability::Unstable) { - let is_rustc_private = stab.feature.as_ref().map(|s| &**s) == Some("rustc_private"); + let is_rustc_private = stab.feature.as_deref() == Some("rustc_private"); emojis += if is_rustc_private { "⚙️" } else { "🔬" }; }; if item.deprecation().is_some() {