searchsorted ranges: simplify code, fix bug with Unsigned needle #40364
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There seemed to be some unnecessary arithmetic and cases, costing performance (and correctness missed in #34224 fix). Rework some of the cases to avoid unnecessary computation (and still pass tests). Notably, this avoids computing
length
unnecessarily, which often requires a division, and is therefore often expensive. Along with #40358, this solves the performance gap noticed in #38527 with repeated lookups.As a PSA: I made these test arrays
Any[ ... ]
, since otherwise you risk having a promotion rule rewrite all of the test types into a single common type, defeating the purpose of the loop. Another solution would have been to use()
instead ofAny[]
.