Skip to content

Optimize is_sorted for Range and RangeInclusive - #89335

Merged
bors merged 1 commit into
rust-lang:masterfrom
mbrubeck:range-is-sorted
Sep 30, 2021
Merged

Optimize is_sorted for Range and RangeInclusive#89335
bors merged 1 commit into
rust-lang:masterfrom
mbrubeck:range-is-sorted

Conversation

@mbrubeck

@mbrubeckmbrubeck commented Sep 28, 2021

Copy link
Copy Markdown
Contributor

The Step trait guarantees that Range<impl Step> yields items in sorted order. We can override Iterator::is_sorted based on this guarantee, as we already do for Iterator::min and max.

Thank you to @fiveseven-lambda who pointed this out on the Rust Users Forum.

The `Step` trait guarantees that `Range<impl Step>` yields items in
sorted order. We can override the `Iterator::is_sorted` method based on
this guarantee, as we already do for `Iterator::min` and `max`.
@rust-highfive

Copy link
Copy Markdown
Contributor

r? @scottmcm

(rust-highfive has picked a reviewer for you, use r? to override)

@rust-highfiverust-highfive added the S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. label Sep 28, 2021
@mbrubeckmbrubeck added A-iterators Area: Iterators T-libs Relevant to the library team, which will review and decide on the PR/issue. labels Sep 28, 2021
@cuviper

Copy link
Copy Markdown
Member

r? @cuviper
@bors r+ rollup

@bors

bors commented Sep 28, 2021

Copy link
Copy Markdown
Collaborator

📌 Commit 830ecbd has been approved by cuviper

@borsbors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Sep 28, 2021
GuillaumeGomez added a commit to GuillaumeGomez/rust that referenced this pull request Sep 29, 2021
Optimize is_sorted for Range and RangeInclusive
The [`Step`] trait guarantees that `Range<impl Step>` yields items in sorted order. We can override `Iterator::is_sorted` based on this guarantee, as we already do for `Iterator::min` and `max`.
Thank you to `@fiveseven-lambda` who pointed this out [on the Rust Users Forum](https://users.rust-lang.org/t/is-sorted-method-in-impl-iterator-for-range/64717).
[`Step`]: https://doc.rust-lang.org/stable/std/iter/trait.Step.html
@ehussehuss mentioned this pull request Sep 30, 2021
bors added a commit to rust-lang-ci/rust that referenced this pull request Sep 30, 2021
Rollup of 13 pull requests
Successful merges:
- rust-lang#87428 (Fix union keyword highlighting in rustdoc HTML sources)
- rust-lang#88412 (Remove ignore-tidy-undocumented-unsafe from core::slice::sort)
- rust-lang#89098 (Fix generics where bounds order)
- rust-lang#89232 (Improve help for recursion limit errors)
- rust-lang#89294 (:arrow_up: rust-analyzer)
- rust-lang#89297 (Remove Never variant from clean::Type enum)
- rust-lang#89311 (Add unit assignment to MIR for `asm!()`)
- rust-lang#89313 (PassWrapper: handle function rename from upstream D36850)
- rust-lang#89315 (Clarify that `CString::from_vec_unchecked` appends 0 byte.)
- rust-lang#89335 (Optimize is_sorted for Range and RangeInclusive)
- rust-lang#89366 (rustdoc: Remove lazy_static dependency)
- rust-lang#89377 (Update cargo)
- rust-lang#89378 (Update books)
Failed merges:
r? `@ghost`
`@rustbot` modify labels: rollup
@bors
bors merged commit 8f9f3aa into rust-lang:masterSep 30, 2021
@rustbotrustbot added this to the 1.57.0 milestone Sep 30, 2021
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-iteratorsArea: IteratorsS-waiting-on-borsStatus: Waiting on bors to run and complete tests. Bors will change the label on completion.T-libsRelevant to the library team, which will review and decide on the PR/issue.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants

@mbrubeck@rust-highfive@cuviper@bors@scottmcm@rustbot