about summary refs log tree commit diff
diff options
context:
space:
mode:
authormitaa <mitaa.ceb@gmail.com>2016-02-23 12:04:27 +0100
committermitaa <mitaa.ceb@gmail.com>2016-02-23 12:17:12 +0100
commit9d3bce38b4e7c2fe706d8228d720222ec2781e30 (patch)
tree58d7a4347afa22e9d14551125cbe97948ae9a567
parentbe7196a793a185355efb7ec8801102ddec95483d (diff)
downloadrust-9d3bce38b4e7c2fe706d8228d720222ec2781e30.tar.gz
rust-9d3bce38b4e7c2fe706d8228d720222ec2781e30.zip
Don't record self parameter for static methods
-rw-r--r--src/librustdoc/html/render.rs13
1 files changed, 7 insertions, 6 deletions
diff --git a/src/librustdoc/html/render.rs b/src/librustdoc/html/render.rs
index 692d230446c..1b97b3865d4 100644
--- a/src/librustdoc/html/render.rs
+++ b/src/librustdoc/html/render.rs
@@ -2734,18 +2734,19 @@ fn make_item_keywords(it: &clean::Item) -> String {
 
 fn get_index_search_type(item: &clean::Item,
                          parent: Option<String>) -> Option<IndexItemFunctionType> {
-    let decl = match item.inner {
-        clean::FunctionItem(ref f) => &f.decl,
-        clean::MethodItem(ref m) => &m.decl,
-        clean::TyMethodItem(ref m) => &m.decl,
+    let (decl, selfty) = match item.inner {
+        clean::FunctionItem(ref f) => (&f.decl, None),
+        clean::MethodItem(ref m) => (&m.decl, Some(&m.self_)),
+        clean::TyMethodItem(ref m) => (&m.decl, Some(&m.self_)),
         _ => return None
     };
 
     let mut inputs = Vec::new();
 
     // Consider `self` an argument as well.
-    if let Some(name) = parent {
-        inputs.push(Type { name: Some(name.to_ascii_lowercase()) });
+    match parent.and_then(|p| selfty.map(|s| (p, s)) ) {
+        Some((_, &clean::SelfStatic)) | None => (),
+        Some((name, _)) => inputs.push(Type { name: Some(name.to_ascii_lowercase()) }),
     }
 
     inputs.extend(&mut decl.inputs.values.iter().map(|arg| {