diff options
| author | bors <bors@rust-lang.org> | 2020-08-25 05:24:30 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2020-08-25 05:24:30 +0000 |
| commit | c30341ddec0b99bb3bd8bb5fd8c8451778c78330 (patch) | |
| tree | a7482a95b884e75d2a2bd66e4d2c40223a552e05 /library/core | |
| parent | ee541284bf5008bb0425fae02412352025099707 (diff) | |
| parent | d6185f931435a161525f41d270207e33faa26ea2 (diff) | |
Auto merge of #75132 - scottmcm:stabilize-range-is-empty, r=dtolnay
Stabilize Range[Inclusive]::is_empty I would like to propose these two simple methods for stabilization: - Knowing that a range is exhausted isn't otherwise trivial - Clippy would like to suggest them, but had to do extra work to disable that path <https://github.com/rust-lang/rust-clippy/issues/3807> because they're unstable - These work on `PartialOrd`, consistently with the stable `contains` method, and are thus more general than iterator-based approaches that need `Step` - They've been unchanged for some time, and have picked up uses in the compiler - Stabilizing them doesn't block any future iterator-based `is_empty` plans, as these inherent ones are preferred in name resolution https://doc.rust-lang.org/nightly/std/ops/struct.Range.html#method.is_empty https://doc.rust-lang.org/nightly/std/ops/struct.RangeInclusive.html#method.is_empty Closes #48111
Diffstat (limited to 'library/core')
| -rw-r--r-- | library/core/src/ops/range.rs | 14 | ||||
| -rw-r--r-- | library/core/tests/lib.rs | 1 |
2 files changed, 2 insertions, 13 deletions
diff --git a/library/core/src/ops/range.rs b/library/core/src/ops/range.rs index ccabd66aaf6..d10829832dd 100644 --- a/library/core/src/ops/range.rs +++ b/library/core/src/ops/range.rs @@ -125,8 +125,6 @@ impl<Idx: PartialOrd<Idx>> Range<Idx> { /// # Examples /// /// ``` - /// #![feature(range_is_empty)] - /// /// assert!(!(3..5).is_empty()); /// assert!( (3..3).is_empty()); /// assert!( (3..2).is_empty()); @@ -135,13 +133,11 @@ impl<Idx: PartialOrd<Idx>> Range<Idx> { /// The range is empty if either side is incomparable: /// /// ``` - /// #![feature(range_is_empty)] - /// /// assert!(!(3.0..5.0).is_empty()); /// assert!( (3.0..f32::NAN).is_empty()); /// assert!( (f32::NAN..5.0).is_empty()); /// ``` - #[unstable(feature = "range_is_empty", reason = "recently added", issue = "48111")] + #[stable(feature = "range_is_empty", since = "1.47.0")] pub fn is_empty(&self) -> bool { !(self.start < self.end) } @@ -481,8 +477,6 @@ impl<Idx: PartialOrd<Idx>> RangeInclusive<Idx> { /// # Examples /// /// ``` - /// #![feature(range_is_empty)] - /// /// assert!(!(3..=5).is_empty()); /// assert!(!(3..=3).is_empty()); /// assert!( (3..=2).is_empty()); @@ -491,8 +485,6 @@ impl<Idx: PartialOrd<Idx>> RangeInclusive<Idx> { /// The range is empty if either side is incomparable: /// /// ``` - /// #![feature(range_is_empty)] - /// /// assert!(!(3.0..=5.0).is_empty()); /// assert!( (3.0..=f32::NAN).is_empty()); /// assert!( (f32::NAN..=5.0).is_empty()); @@ -501,14 +493,12 @@ impl<Idx: PartialOrd<Idx>> RangeInclusive<Idx> { /// This method returns `true` after iteration has finished: /// /// ``` - /// #![feature(range_is_empty)] - /// /// let mut r = 3..=5; /// for _ in r.by_ref() {} /// // Precise field values are unspecified here /// assert!(r.is_empty()); /// ``` - #[unstable(feature = "range_is_empty", reason = "recently added", issue = "48111")] + #[stable(feature = "range_is_empty", since = "1.47.0")] #[inline] pub fn is_empty(&self) -> bool { self.exhausted || !(self.start <= self.end) diff --git a/library/core/tests/lib.rs b/library/core/tests/lib.rs index 904e3f72840..81e621318e1 100644 --- a/library/core/tests/lib.rs +++ b/library/core/tests/lib.rs @@ -17,7 +17,6 @@ #![feature(try_find)] #![feature(is_sorted)] #![feature(pattern)] -#![feature(range_is_empty)] #![feature(raw)] #![feature(sort_internals)] #![feature(slice_partition_at_index)] |
