about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--src/librustdoc/html/static/main.js13
1 files changed, 8 insertions, 5 deletions
diff --git a/src/librustdoc/html/static/main.js b/src/librustdoc/html/static/main.js
index 0d3d52ead17..7cc06760162 100644
--- a/src/librustdoc/html/static/main.js
+++ b/src/librustdoc/html/static/main.js
@@ -443,7 +443,7 @@
                 var lev_distance = MAX_LEV_DISTANCE + 1;
                 if (obj.name === val.name) {
                     if (literalSearch === true) {
-                        if (val.generics.length > 0) {
+                        if (val.generics.length !== 0) {
                             if (obj.generics && obj.length >= val.generics.length) {
                                 var elems = obj.generics.slice(0);
                                 var allFound = true;
@@ -467,7 +467,8 @@
                         }
                         return true;
                     }
-                    // No need to check anything else: we found it. Let's just move on.
+                    // If the type has generics but don't match, then it won't return at this point.
+                    // Otherwise, `checkGenerics` will return 0 and it'll return.
                     var tmp_lev = checkGenerics(obj, val);
                     if (tmp_lev <= MAX_LEV_DISTANCE) {
                         return tmp_lev;
@@ -494,7 +495,9 @@
                         lev_distance = min(levenshtein(obj.generics[x], val.name), lev_distance);
                     }
                 }
-                return lev_distance;
+                // Now whatever happens, the returned distance is "less good" so we should mark it
+                // as such, and so we add 1 to the distance to make it "less good".
+                return lev_distance + 1;
             }
 
             function findArg(obj, val, literalSearch) {
@@ -503,7 +506,7 @@
                 if (obj && obj.type && obj.type.inputs.length > 0) {
                     for (var i = 0; i < obj.type.inputs.length; i++) {
                         var tmp = checkType(obj.type.inputs[i], val, literalSearch);
-                        if (literalSearch && tmp === true) {
+                        if (literalSearch === true && tmp === true) {
                             return true;
                         }
                         lev_distance = min(tmp, lev_distance);
@@ -520,7 +523,7 @@
 
                 if (obj && obj.type && obj.type.output) {
                     var tmp = checkType(obj.type.output, val, literalSearch);
-                    if (literalSearch && tmp === true) {
+                    if (literalSearch === true && tmp === true) {
                         return true;
                     }
                     lev_distance = min(tmp, lev_distance);