about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorGuillaume Gomez <guillaume1.gomez@gmail.com>2025-09-11 18:05:07 +0200
committerGuillaume Gomez <guillaume1.gomez@gmail.com>2025-09-11 18:05:07 +0200
commitbfd5a264c7e02ee831aab919c272539cf9395a1d (patch)
tree651ed9dcab6f780dd886bb43999ef833647d4ff2 /src
parentbe8de5d6a0fc5cb2924e174a809a0aff303f281a (diff)
downloadrust-bfd5a264c7e02ee831aab919c272539cf9395a1d.tar.gz
rust-bfd5a264c7e02ee831aab919c272539cf9395a1d.zip
Correctly handle literal search on paths
Diffstat (limited to 'src')
-rw-r--r--src/librustdoc/html/static/js/search.js6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/librustdoc/html/static/js/search.js b/src/librustdoc/html/static/js/search.js
index b01b596da68..3b84ae2bed0 100644
--- a/src/librustdoc/html/static/js/search.js
+++ b/src/librustdoc/html/static/js/search.js
@@ -3639,7 +3639,7 @@ class DocSearch {
             if (contains.length === 0) {
                 return 0;
             }
-            const maxPathEditDistance = Math.floor(
+            const maxPathEditDistance = parsedQuery.literalSearch ? 0 : Math.floor(
                 contains.reduce((acc, next) => acc + next.length, 0) / 3,
             );
             let ret_dist = maxPathEditDistance + 1;
@@ -3650,7 +3650,9 @@ class DocSearch {
                 let dist_total = 0;
                 for (let x = 0; x < clength; ++x) {
                     const [p, c] = [path[i + x], contains[x]];
-                    if (Math.floor((p.length - c.length) / 3) <= maxPathEditDistance &&
+                    if (parsedQuery.literalSearch && p !== c) {
+                        continue pathiter;
+                    } else if (Math.floor((p.length - c.length) / 3) <= maxPathEditDistance &&
                         p.indexOf(c) !== -1
                     ) {
                         // discount distance on substring match