]> git.lizzy.rs Git - rust.git/commitdiff
add "Implementations on Foreign Types" to the sidebar
authorQuietMisdreavus <grey@quietmisdreavus.net>
Tue, 15 Aug 2017 21:05:03 +0000 (16:05 -0500)
committerQuietMisdreavus <grey@quietmisdreavus.net>
Tue, 5 Sep 2017 16:21:18 +0000 (11:21 -0500)
src/librustdoc/html/render.rs

index 1836476f23bb6a7e8ffc9d2aa4fae5c7fddbfb4b..46bb119cf9c9d3b04cd4cc5320c365f1001d6584 100644 (file)
@@ -3535,6 +3535,17 @@ fn sidebar_trait(fmt: &mut fmt::Formatter, it: &clean::Item,
 
     sidebar.push_str(&sidebar_assoc_items(it));
 
+    let c = cache();
+
+    if let Some(implementors) = c.implementors.get(&it.def_id) {
+        if implementors.iter().any(|i| i.impl_.for_.def_id()
+                                   .map_or(false, |d| !c.paths.contains_key(&d)))
+        {
+            sidebar.push_str("<li><a href=\"#foreign-impls\">\
+                             Implementations on Foreign Types</a></li>");
+        }
+    }
+
     sidebar.push_str("<li><a href=\"#implementors\">Implementors</a></li>");
 
     write!(fmt, "<div class=\"block items\"><ul>{}</ul></div>", sidebar)