stabilize new Range type and iterator#154620
Merged
rust-bors[bot] merged 1 commit intorust-lang:mainfrom Mar 31, 2026
Merged
Conversation
This comment was marked as outdated.
This comment was marked as outdated.
Contributor
Author
|
r? @tgross35 |
Collaborator
|
|
98a1656 to
72ebeb7
Compare
17 tasks
tgross35
approved these changes
Mar 31, 2026
Comment on lines
+7
to
+10
| // FIXME(#125687): new_range_api recently stabilized | ||
| // Remove this when it hits stable. | ||
| #![allow(stable_features)] | ||
| #![cfg_attr(feature = "nightly", feature(new_range_api))] |
Contributor
There was a problem hiding this comment.
Put cfg(bootstrap) in the comment here because (aiui) that's what the release team greps for when they do cfg cleanup with bootstrap bumps.
Comment on lines
+76
to
+77
| + _7 = const Layout {{ size: Indirect { alloc_id: ALLOC0, offset: Size(8 bytes) }: usize, align: std::mem::Alignment {{ _inner_repr_trick: Scalar(0x0000000000000000): std::ptr::alignment::AlignmentEnum }} }}; | ||
| + _6 = std::alloc::Global::alloc_impl_runtime(const Layout {{ size: Indirect { alloc_id: ALLOC0, offset: Size(8 bytes) }: usize, align: std::mem::Alignment {{ _inner_repr_trick: Scalar(0x0000000000000000): std::ptr::alignment::AlignmentEnum }} }}, const false) -> [return: bb4, unwind unreachable]; | ||
| + _7 = const Layout {{ size: Indirect { alloc_id: ALLOC0, offset: Size(8 bytes) }: usize, align: std::mem::Alignment {{ _inner_repr_trick: Scalar(0x0000000000000000): mem::alignment::AlignmentEnum }} }}; | ||
| + _6 = std::alloc::Global::alloc_impl_runtime(const Layout {{ size: Indirect { alloc_id: ALLOC0, offset: Size(8 bytes) }: usize, align: std::mem::Alignment {{ _inner_repr_trick: Scalar(0x0000000000000000): mem::alignment::AlignmentEnum }} }}, const false) -> [return: bb4, unwind unreachable]; |
Contributor
There was a problem hiding this comment.
Ah this comes from #154577, I assume you did --bless locally. Could you drop changes to these files? Otherwise this will conflict once that one merges.
I assume tests will still pass given that PR says we're not testing this bit.
72ebeb7 to
c623772
Compare
stabilizes `core::range::Range` stabilizes `core::range::RangeIter` stabilizes `std::range` which was missed in prior PRs Updates docs to reflect stabilization (removed "experimental") `RangeIter::remainder` is excluded from stabilization
c623772 to
620e92f
Compare
Contributor
|
Thanks! @bors r+ |
Contributor
JonathanBrouwer
added a commit
to JonathanBrouwer/rust
that referenced
this pull request
Mar 31, 2026
…gross35 stabilize new Range type and iterator For rust-lang#125687 Stabilizes `core::range::Range` and `core::range::RangeIter`, newly stable API: ```rust // in core::range pub struct Range<Idx> { pub start: Idx, pub end: Idx, } impl<Idx: fmt::Debug> fmt::Debug for Range<Idx> { /* ... */ } impl<Idx: PartialOrd<Idx>> Range<Idx> { pub const fn contains<U>(&self, item: &U) -> bool where Idx: [const] PartialOrd<U>, U: ?Sized + [const] PartialOrd<Idx>; pub const fn is_empty(&self) -> bool where Idx: [const] PartialOrd; } impl<Idx: Step> Range<Idx> { pub fn iter(&self) -> RangeIter<Idx>; } impl<T> const RangeBounds<T> for Range<T> { /* ... */ } impl<T> const RangeBounds<T> for Range<&T> { /* ... */ } impl<T> const From<Range<T>> for legacy::Range<T> { /* ... */ } impl<T> const From<legacy::Range<T>> for Range<T> { /* ... */ } pub struct RangeIter<A>(/* ... */); // `RangeIter::remainder` not stabilized impl<A: Step> Iterator for RangeIter<A> { type Item = A; /* ... */ } impl<A: Step> DoubleEndedIterator for RangeIter<A> { /* ... */ } impl<A: Step> FusedIterator for RangeIter<A> { } impl<A: Step> IntoIterator for Range<A> { type Item = A; type IntoIter = RangeIter<A>; /* ... */ } impl ExactSizeIterator for RangeIter<u8> { } impl ExactSizeIterator for RangeIter<i8> { } unsafe impl<T> const SliceIndex<[T]> for range::Range<usize> { type Output = [T]; /* ... */ } unsafe impl const SliceIndex<str> for range::Range<usize> { type Output = str; /* ... */ } ``` Updates docs to reflect stabilization (removed "experimental")
This was referenced Mar 31, 2026
rust-bors bot
pushed a commit
that referenced
this pull request
Mar 31, 2026
…uwer Rollup of 12 pull requests Successful merges: - #154419 (Take first task group for further execution) - #154569 (Fix type alias where clause suggestion spacing issue) - #154617 (Update flate2 users to use zlib-rs) - #154618 (Fix AtomicPtr::update's cfg gate) - #154620 (stabilize new Range type and iterator) - #151932 (refactor: remove `Adjust::ReborrowPin`) - #153980 (refactor: move doc(rust_logo) check to parser) - #154134 (fix: guard paren-sugar pretty-printing on short trait args) - #154270 (Create `Ty` type alias in `rustc_type_ir`) - #154580 (Split AttributeParserError Diagnostic implementation into subfunctions) - #154606 (misc test cleanups) - #154612 (Add a test for a now fixed ICE with `offset_of!()`)
rust-timer
added a commit
that referenced
this pull request
Mar 31, 2026
Rollup merge of #154620 - pitaj:stabilize-new_range_api, r=tgross35 stabilize new Range type and iterator For #125687 Stabilizes `core::range::Range` and `core::range::RangeIter`, newly stable API: ```rust // in core::range pub struct Range<Idx> { pub start: Idx, pub end: Idx, } impl<Idx: fmt::Debug> fmt::Debug for Range<Idx> { /* ... */ } impl<Idx: PartialOrd<Idx>> Range<Idx> { pub const fn contains<U>(&self, item: &U) -> bool where Idx: [const] PartialOrd<U>, U: ?Sized + [const] PartialOrd<Idx>; pub const fn is_empty(&self) -> bool where Idx: [const] PartialOrd; } impl<Idx: Step> Range<Idx> { pub fn iter(&self) -> RangeIter<Idx>; } impl<T> const RangeBounds<T> for Range<T> { /* ... */ } impl<T> const RangeBounds<T> for Range<&T> { /* ... */ } impl<T> const From<Range<T>> for legacy::Range<T> { /* ... */ } impl<T> const From<legacy::Range<T>> for Range<T> { /* ... */ } pub struct RangeIter<A>(/* ... */); // `RangeIter::remainder` not stabilized impl<A: Step> Iterator for RangeIter<A> { type Item = A; /* ... */ } impl<A: Step> DoubleEndedIterator for RangeIter<A> { /* ... */ } impl<A: Step> FusedIterator for RangeIter<A> { } impl<A: Step> IntoIterator for Range<A> { type Item = A; type IntoIter = RangeIter<A>; /* ... */ } impl ExactSizeIterator for RangeIter<u8> { } impl ExactSizeIterator for RangeIter<i8> { } unsafe impl<T> const SliceIndex<[T]> for range::Range<usize> { type Output = [T]; /* ... */ } unsafe impl const SliceIndex<str> for range::Range<usize> { type Output = str; /* ... */ } ``` Updates docs to reflect stabilization (removed "experimental")
github-actions bot
pushed a commit
to rust-lang/compiler-builtins
that referenced
this pull request
Mar 31, 2026
…uwer Rollup of 12 pull requests Successful merges: - rust-lang/rust#154419 (Take first task group for further execution) - rust-lang/rust#154569 (Fix type alias where clause suggestion spacing issue) - rust-lang/rust#154617 (Update flate2 users to use zlib-rs) - rust-lang/rust#154618 (Fix AtomicPtr::update's cfg gate) - rust-lang/rust#154620 (stabilize new Range type and iterator) - rust-lang/rust#151932 (refactor: remove `Adjust::ReborrowPin`) - rust-lang/rust#153980 (refactor: move doc(rust_logo) check to parser) - rust-lang/rust#154134 (fix: guard paren-sugar pretty-printing on short trait args) - rust-lang/rust#154270 (Create `Ty` type alias in `rustc_type_ir`) - rust-lang/rust#154580 (Split AttributeParserError Diagnostic implementation into subfunctions) - rust-lang/rust#154606 (misc test cleanups) - rust-lang/rust#154612 (Add a test for a now fixed ICE with `offset_of!()`)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
For #125687
Stabilizes
core::range::Rangeandcore::range::RangeIter, newly stable API:Updates docs to reflect stabilization (removed "experimental")