about summary refs log tree commit diff
diff options
context:
space:
mode:
authorGuillaume Gomez <guillaume1.gomez@gmail.com>2017-12-01 20:55:25 +0100
committerGuillaume Gomez <guillaume1.gomez@gmail.com>2017-12-01 20:55:25 +0100
commit30734c4e6887f7167c01e2fef33d96f82d25b1b9 (patch)
tree05eb49088ac79dfca066c61f59855250158d3d8d
parent6805b016efdfcd99e706003fab1336df73f6811b (diff)
downloadrust-30734c4e6887f7167c01e2fef33d96f82d25b1b9.tar.gz
rust-30734c4e6887f7167c01e2fef33d96f82d25b1b9.zip
Fix deduplication of items
-rw-r--r--src/librustdoc/html/static/main.js13
1 files changed, 10 insertions, 3 deletions
diff --git a/src/librustdoc/html/static/main.js b/src/librustdoc/html/static/main.js
index fda6b8359f1..cea510de692 100644
--- a/src/librustdoc/html/static/main.js
+++ b/src/librustdoc/html/static/main.js
@@ -720,6 +720,13 @@
                 return false;
             }
 
+            function generateId(ty) {
+                if (ty.parent && ty.parent.name) {
+                    return itemTypes[ty.ty] + ty.path + ty.parent.name + ty.name;
+                }
+                return itemTypes[ty.ty] + ty.path + ty.name;
+            }
+
             // quoted values mean literal search
             var nSearchWords = searchWords.length;
             if ((val.charAt(0) === "\"" || val.charAt(0) === "'") &&
@@ -730,7 +737,7 @@
                     var in_args = findArg(searchIndex[i], val, true);
                     var returned = checkReturned(searchIndex[i], val, true);
                     var ty = searchIndex[i];
-                    var fullId = itemTypes[ty.ty] + ty.path + ty.name;
+                    var fullId = generateId(ty);
 
                     if (searchWords[i] === val.name) {
                         // filter type: ... queries
@@ -786,7 +793,7 @@
                     if (!type) {
                         continue;
                     }
-                    var fullId = itemTypes[ty.ty] + ty.path + ty.name;
+                    var fullId = generateId(ty);
 
                     // allow searching for void (no output) functions as well
                     var typeOutput = type.output ? type.output.name : "";
@@ -872,7 +879,7 @@
                     var index = -1;
                     // we want lev results to go lower than others
                     var lev = MAX_LEV_DISTANCE + 1;
-                    var fullId = itemTypes[ty.ty] + ty.path + ty.name;
+                    var fullId = generateId(ty);
 
                     if (searchWords[j].indexOf(split[i]) > -1 ||
                         searchWords[j].indexOf(val) > -1 ||