diff options
| author | bors <bors@rust-lang.org> | 2018-07-13 10:18:38 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2018-07-13 10:18:38 +0000 |
| commit | c0955a34bcb17f0b31d7b86522a520ebe7fa93ac (patch) | |
| tree | 19eef2b6ba3ad8e7bae6370de1f0ab33e6c7df3a /src/libcore/slice | |
| parent | 8b48b247dc24a40ce499415370bfd2b6cefa3a1b (diff) | |
| parent | 6093128ef3c5ae661ec66fbf3685833d6be217bb (diff) | |
| download | rust-c0955a34bcb17f0b31d7b86522a520ebe7fa93ac.tar.gz rust-c0955a34bcb17f0b31d7b86522a520ebe7fa93ac.zip | |
Auto merge of #51622 - kennytm:three-field-range-inclusive, r=SimonSapin
Change RangeInclusive to a three-field struct. Fix #45222. This PR also reverts #48012 (i.e. removed the `try_fold`/`try_rfold` specialization for `RangeInclusive`) because LLVM no longer has trouble recognizing a RangeInclusive loop.
Diffstat (limited to 'src/libcore/slice')
| -rw-r--r-- | src/libcore/slice/mod.rs | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/src/libcore/slice/mod.rs b/src/libcore/slice/mod.rs index f6ef4a79dc7..b766140ffe9 100644 --- a/src/libcore/slice/mod.rs +++ b/src/libcore/slice/mod.rs @@ -2265,36 +2265,36 @@ impl<T> SliceIndex<[T]> for ops::RangeInclusive<usize> { #[inline] fn get(self, slice: &[T]) -> Option<&[T]> { - if self.end == usize::max_value() { None } - else { (self.start..self.end + 1).get(slice) } + if *self.end() == usize::max_value() { None } + else { (*self.start()..self.end() + 1).get(slice) } } #[inline] fn get_mut(self, slice: &mut [T]) -> Option<&mut [T]> { - if self.end == usize::max_value() { None } - else { (self.start..self.end + 1).get_mut(slice) } + if *self.end() == usize::max_value() { None } + else { (*self.start()..self.end() + 1).get_mut(slice) } } #[inline] unsafe fn get_unchecked(self, slice: &[T]) -> &[T] { - (self.start..self.end + 1).get_unchecked(slice) + (*self.start()..self.end() + 1).get_unchecked(slice) } #[inline] unsafe fn get_unchecked_mut(self, slice: &mut [T]) -> &mut [T] { - (self.start..self.end + 1).get_unchecked_mut(slice) + (*self.start()..self.end() + 1).get_unchecked_mut(slice) } #[inline] fn index(self, slice: &[T]) -> &[T] { - if self.end == usize::max_value() { slice_index_overflow_fail(); } - (self.start..self.end + 1).index(slice) + if *self.end() == usize::max_value() { slice_index_overflow_fail(); } + (*self.start()..self.end() + 1).index(slice) } #[inline] fn index_mut(self, slice: &mut [T]) -> &mut [T] { - if self.end == usize::max_value() { slice_index_overflow_fail(); } - (self.start..self.end + 1).index_mut(slice) + if *self.end() == usize::max_value() { slice_index_overflow_fail(); } + (*self.start()..self.end() + 1).index_mut(slice) } } |
