diff options
| author | binarycat <binarycat@envs.net> | 2025-03-03 23:36:12 -0600 |
|---|---|---|
| committer | binarycat <binarycat@envs.net> | 2025-03-03 23:36:12 -0600 |
| commit | a8c0b3bfff36c5b7dbd429891b7fd2093e25a9ad (patch) | |
| tree | 2f1f2910697dca96e0c4b215fe3792584c42937b /src | |
| parent | 617aad8c2e8783f6df8e5d1f8bb1e4bcdc70aa7b (diff) | |
rustdoc search: increase strictness of typechecking
Diffstat (limited to 'src')
| -rw-r--r-- | src/librustdoc/html/static/js/rustdoc.d.ts | 10 | ||||
| -rw-r--r-- | src/librustdoc/html/static/js/search.js | 7 |
2 files changed, 11 insertions, 6 deletions
diff --git a/src/librustdoc/html/static/js/rustdoc.d.ts b/src/librustdoc/html/static/js/rustdoc.d.ts index acea7828e86..c7b7a46808f 100644 --- a/src/librustdoc/html/static/js/rustdoc.d.ts +++ b/src/librustdoc/html/static/js/rustdoc.d.ts @@ -123,7 +123,7 @@ declare namespace rustdoc { * Same as QueryElement, but bindings and typeFilter support strings */ interface ParserQueryElement { - name: string, + name: string|null, id: number|null, fullPath: Array<string>, pathWithoutLast: Array<string>, @@ -131,11 +131,17 @@ declare namespace rustdoc { normalizedPathLast: string, generics: Array<ParserQueryElement>, bindings: Map<string, Array<ParserQueryElement>>, - bindingName: {name: string, generics: ParserQueryElement[]}|null, + bindingName: {name: string|null, generics: ParserQueryElement[]}|null, typeFilter: string|null, } /** + * Same as ParserQueryElement, but all fields are optional. + */ + type ParserQueryElementFields = { + [K in keyof ParserQueryElement]?: ParserQueryElement[T] + } + /** * Intermediate parser state. Discarded when parsing is done. */ interface ParserState { diff --git a/src/librustdoc/html/static/js/search.js b/src/librustdoc/html/static/js/search.js index ccbd6811b07..4073bb389c0 100644 --- a/src/librustdoc/html/static/js/search.js +++ b/src/librustdoc/html/static/js/search.js @@ -638,7 +638,6 @@ function getNextElem(query, parserState, elems, isInGenerics) { getFilteredNextElem(query, parserState, generics, isInGenerics); generics[generics.length - 1].bindingName = makePrimitiveElement("output"); } else { - // @ts-expect-error generics.push(makePrimitiveElement(null, { bindingName: makePrimitiveElement("output"), typeFilter: null, @@ -791,7 +790,7 @@ function createQueryElement(query, parserState, name, generics, isInGenerics) { generics: generics.filter(gen => { // Syntactically, bindings are parsed as generics, // but the query engine treats them differently. - if (gen.bindingName !== null) { + if (gen.bindingName !== null && gen.bindingName.name !== null) { if (gen.name !== null) { gen.bindingName.generics.unshift(gen); } @@ -811,8 +810,8 @@ function createQueryElement(query, parserState, name, generics, isInGenerics) { /** * - * @param {string} name - * @param {Object=} extra + * @param {string|null} name + * @param {rustdoc.ParserQueryElementFields=} extra * @returns {rustdoc.ParserQueryElement} */ function makePrimitiveElement(name, extra) { |
