diff options
| author | Matthias Krüger <matthias.krueger@famsik.de> | 2024-09-07 23:30:14 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-09-07 23:30:14 +0200 |
| commit | 04b4523efcf0790458740f1c59f7c2d248be7c9c (patch) | |
| tree | b5134474f42dfdc6b7e784dc68be06ab7d473434 /src/librustdoc/html | |
| parent | a88b1af7c05bbe0e70ed77fa6dcf8f65b0c7880f (diff) | |
| parent | 3699e939e8f6a2517806a219c082723d50dd4288 (diff) | |
| download | rust-04b4523efcf0790458740f1c59f7c2d248be7c9c.tar.gz rust-04b4523efcf0790458740f1c59f7c2d248be7c9c.zip | |
Rollup merge of #130009 - notriddle:notriddle/trailing-arrow, r=lolbinarycat,GuillaumeGomez
rustdoc-search: allow trailing `Foo ->` arg search Fixes #129710
Diffstat (limited to 'src/librustdoc/html')
| -rw-r--r-- | src/librustdoc/html/static/js/externs.js | 1 | ||||
| -rw-r--r-- | src/librustdoc/html/static/js/search.js | 10 |
2 files changed, 6 insertions, 5 deletions
diff --git a/src/librustdoc/html/static/js/externs.js b/src/librustdoc/html/static/js/externs.js index 6fd60d6cc34..3d3e0a8f838 100644 --- a/src/librustdoc/html/static/js/externs.js +++ b/src/librustdoc/html/static/js/externs.js @@ -41,6 +41,7 @@ let ParserState; * foundElems: number, * totalElems: number, * literalSearch: boolean, + * hasReturnArrow: boolean, * corrections: Array<{from: string, to: integer}> | null, * typeFingerprint: Uint32Array, * error: Array<string> | null, diff --git a/src/librustdoc/html/static/js/search.js b/src/librustdoc/html/static/js/search.js index 6f575e60ed4..4da0bbc787d 100644 --- a/src/librustdoc/html/static/js/search.js +++ b/src/librustdoc/html/static/js/search.js @@ -657,7 +657,7 @@ function createQueryElement(query, parserState, name, generics, isInGenerics) { } const typeFilter = parserState.typeFilter; parserState.typeFilter = null; - if (name === "!") { + if (name.trim() === "!") { if (typeFilter !== null && typeFilter !== "primitive") { throw [ "Invalid search type: primitive never type ", @@ -1795,6 +1795,7 @@ class DocSearch { // Total number of elements (includes generics). totalElems: 0, literalSearch: false, + hasReturnArrow: false, error: null, correction: null, proposeCorrectionFrom: null, @@ -1823,6 +1824,7 @@ class DocSearch { continue; } else if (c === "-" || c === ">") { if (isReturnArrow(parserState)) { + query.hasReturnArrow = true; break; } throw ["Unexpected ", c, " (did you mean ", "->", "?)"]; @@ -1889,9 +1891,7 @@ class DocSearch { // Get returned elements. getItemsBefore(query, parserState, query.returned, ""); // Nothing can come afterward! - if (query.returned.length === 0) { - throw ["Expected at least one item after ", "->"]; - } + query.hasReturnArrow = true; break; } else { parserState.pos += 1; @@ -3249,7 +3249,7 @@ class DocSearch { this.buildFunctionTypeFingerprint(elem, parsedQuery.typeFingerprint, fps); } - if (parsedQuery.foundElems === 1 && parsedQuery.returned.length === 0) { + if (parsedQuery.foundElems === 1 && !parsedQuery.hasReturnArrow) { if (parsedQuery.elems.length === 1) { const elem = parsedQuery.elems[0]; const length = this.searchIndex.length; |
