diff options
| author | Michael Howell <michael@notriddle.com> | 2024-09-24 11:04:04 -0700 |
|---|---|---|
| committer | Michael Howell <michael@notriddle.com> | 2024-10-30 10:35:38 -0700 |
| commit | 2cc1c0c39a481be5a4498dbee4f89a479dabd9c9 (patch) | |
| tree | f253e37a95a680ab85dfa4789ba806ac8a51f312 | |
| parent | 488d5b0d8e3dd25321615ae702689348574cc77f (diff) | |
| download | rust-2cc1c0c39a481be5a4498dbee4f89a479dabd9c9.tar.gz rust-2cc1c0c39a481be5a4498dbee4f89a479dabd9c9.zip | |
rustdoc-search: simplify the checkTypes fast path
This reduces code size while still matching the common case for plain, concrete types.
| -rw-r--r-- | src/librustdoc/html/static/js/search.js | 37 |
1 files changed, 11 insertions, 26 deletions
diff --git a/src/librustdoc/html/static/js/search.js b/src/librustdoc/html/static/js/search.js index eed64d024c0..995c2e04194 100644 --- a/src/librustdoc/html/static/js/search.js +++ b/src/librustdoc/html/static/js/search.js @@ -2727,33 +2727,18 @@ class DocSearch { if (unboxingDepth >= UNBOXING_LIMIT) { return false; } - if (row.bindings.size === 0 && elem.bindings.size === 0) { - if (elem.id < 0 && mgens === null) { - return row.id < 0 || checkIfInList( - row.generics, - elem, - whereClause, - mgens, - unboxingDepth + 1, - ); - } - if (row.id > 0 && elem.id > 0 && elem.pathWithoutLast.length === 0 && - typePassesFilter(elem.typeFilter, row.ty) && elem.generics.length === 0 && - // special case - elem.id !== this.typeNameIdOfArrayOrSlice - && elem.id !== this.typeNameIdOfTupleOrUnit - && elem.id !== this.typeNameIdOfHof - ) { - return row.id === elem.id || checkIfInList( - row.generics, - elem, - whereClause, - mgens, - unboxingDepth, - ); - } + if (row.id > 0 && elem.id > 0 && elem.pathWithoutLast.length === 0 && + row.generics.length === 0 && elem.generics.length === 0 && + row.bindings.size === 0 && elem.bindings.size === 0 && + // special case + elem.id !== this.typeNameIdOfArrayOrSlice && + elem.id !== this.typeNameIdOfHof && + elem.id !== this.typeNameIdOfTupleOrUnit + ) { + return row.id === elem.id && typePassesFilter(elem.typeFilter, row.ty); + } else { + return unifyFunctionTypes([row], [elem], whereClause, mgens, null, unboxingDepth); } - return unifyFunctionTypes([row], [elem], whereClause, mgens, null, unboxingDepth); }; /** |
