@@ -578,7 +578,7 @@ function initSearch(rawSearchIndex) {
578578 } else if ( quadcolon !== null ) {
579579 throw [ "Unexpected " , quadcolon [ 0 ] ] ;
580580 }
581- const pathSegments = path . split ( / (?: : : \s * ) | (?: \s + (?: : : \s * ) ? ) / ) ;
581+ const pathSegments = path . split ( / (?: : : \s * ) | (?: \s + (?: : : \s * ) ? ) / ) . map ( x => x . toLowerCase ( ) ) ;
582582 // In case we only have something like `<p>`, there is no name.
583583 if ( pathSegments . length === 0 || ( pathSegments . length === 1 && pathSegments [ 0 ] === "" ) ) {
584584 if ( generics . length > 0 || prevIs ( parserState , ">" ) ) {
@@ -617,7 +617,10 @@ function initSearch(rawSearchIndex) {
617617 if ( gen . name !== null ) {
618618 gen . bindingName . generics . unshift ( gen ) ;
619619 }
620- bindings . set ( gen . bindingName . name , gen . bindingName . generics ) ;
620+ bindings . set (
621+ gen . bindingName . name . toLowerCase ( ) . replace ( / _ / g, "" ) ,
622+ gen . bindingName . generics ,
623+ ) ;
621624 return false ;
622625 }
623626 return true ;
@@ -1206,8 +1209,7 @@ function initSearch(rawSearchIndex) {
12061209 */
12071210 function newParsedQuery ( userQuery ) {
12081211 return {
1209- original : userQuery ,
1210- userQuery : userQuery . toLowerCase ( ) ,
1212+ userQuery : userQuery ,
12111213 elems : [ ] ,
12121214 returned : [ ] ,
12131215 // Total number of "top" elements (does not include generics).
@@ -1299,7 +1301,7 @@ function initSearch(rawSearchIndex) {
12991301 genericsElems : 0 ,
13001302 typeFilter : null ,
13011303 isInBinding : null ,
1302- userQuery : userQuery . toLowerCase ( ) ,
1304+ userQuery,
13031305 } ;
13041306 let query = newParsedQuery ( userQuery ) ;
13051307
@@ -2768,21 +2770,25 @@ function initSearch(rawSearchIndex) {
27682770 if ( ( elem . id === null && parsedQuery . totalElems > 1 && elem . typeFilter === - 1
27692771 && elem . generics . length === 0 && elem . bindings . size === 0 )
27702772 || elem . typeFilter === TY_GENERIC ) {
2771- if ( genericSymbols . has ( elem . name ) ) {
2772- elem . id = genericSymbols . get ( elem . name ) ;
2773+ if ( genericSymbols . has ( elem . normalizedPathLast ) ) {
2774+ elem . id = genericSymbols . get ( elem . normalizedPathLast ) ;
27732775 } else {
27742776 elem . id = - ( genericSymbols . size + 1 ) ;
2775- genericSymbols . set ( elem . name , elem . id ) ;
2777+ genericSymbols . set ( elem . normalizedPathLast , elem . id ) ;
27762778 }
2777- if ( elem . typeFilter === - 1 && elem . name . length >= 3 ) {
2779+ if ( elem . typeFilter === - 1 && elem . normalizedPathLast . length >= 3 ) {
27782780 // Silly heuristic to catch if the user probably meant
27792781 // to not write a generic parameter. We don't use it,
27802782 // just bring it up.
2781- const maxPartDistance = Math . floor ( elem . name . length / 3 ) ;
2783+ const maxPartDistance = Math . floor ( elem . normalizedPathLast . length / 3 ) ;
27822784 let matchDist = maxPartDistance + 1 ;
27832785 let matchName = "" ;
27842786 for ( const name of typeNameIdMap . keys ( ) ) {
2785- const dist = editDistance ( name , elem . name , maxPartDistance ) ;
2787+ const dist = editDistance (
2788+ name ,
2789+ elem . normalizedPathLast ,
2790+ maxPartDistance ,
2791+ ) ;
27862792 if ( dist <= matchDist && dist <= maxPartDistance ) {
27872793 if ( dist === matchDist && matchName > name ) {
27882794 continue ;
@@ -2894,7 +2900,7 @@ function initSearch(rawSearchIndex) {
28942900 sorted_returned ,
28952901 sorted_others ,
28962902 parsedQuery ) ;
2897- handleAliases ( ret , parsedQuery . original . replace ( / " / g, "" ) , filterCrates , currentCrate ) ;
2903+ handleAliases ( ret , parsedQuery . userQuery . replace ( / " / g, "" ) , filterCrates , currentCrate ) ;
28982904 await Promise . all ( [ ret . others , ret . returned , ret . in_args ] . map ( async list => {
28992905 const descs = await Promise . all ( list . map ( result => {
29002906 return searchIndexEmptyDesc . get ( result . crate ) . contains ( result . bitIndex ) ?
@@ -3342,11 +3348,11 @@ ${item.displayPath}<span class="${type}">${name}</span>\
33423348 }
33433349
33443350 // Update document title to maintain a meaningful browser history
3345- searchState . title = "Results for " + query . original + " - Rust" ;
3351+ searchState . title = "Results for " + query . userQuery + " - Rust" ;
33463352
33473353 // Because searching is incremental by character, only the most
33483354 // recent search query is added to the browser history.
3349- updateSearchHistory ( buildUrl ( query . original , filterCrates ) ) ;
3355+ updateSearchHistory ( buildUrl ( query . userQuery , filterCrates ) ) ;
33503356
33513357 await showResults (
33523358 await execQuery ( query , filterCrates , window . currentCrate ) ,
0 commit comments