diff options
| author | The 8472 <git@infinite-source.de> | 2023-03-27 14:56:14 +0200 |
|---|---|---|
| committer | The 8472 <git@infinite-source.de> | 2023-03-27 16:03:30 +0200 |
| commit | 41807938d2fbc7928d75b1d68ac08899682168a2 (patch) | |
| tree | 8f4c5b446fe3c09500a9d8d207f6a386d0f36553 /library/alloc/src | |
| parent | 9cd9da2cd1c365791c7bf41be5759ebc34180aa0 (diff) | |
| download | rust-41807938d2fbc7928d75b1d68ac08899682168a2.tar.gz rust-41807938d2fbc7928d75b1d68ac08899682168a2.zip | |
fix advance_by impl for vec_deque and add tests
Diffstat (limited to 'library/alloc/src')
| -rw-r--r-- | library/alloc/src/collections/vec_deque/into_iter.rs | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/library/alloc/src/collections/vec_deque/into_iter.rs b/library/alloc/src/collections/vec_deque/into_iter.rs index c277c62ad14..e2b40f7912e 100644 --- a/library/alloc/src/collections/vec_deque/into_iter.rs +++ b/library/alloc/src/collections/vec_deque/into_iter.rs @@ -56,10 +56,10 @@ impl<T, A: Allocator> Iterator for IntoIter<T, A> { #[inline] fn advance_by(&mut self, n: usize) -> Result<(), NonZeroUsize> { - let rem = if self.inner.len < n { - let len = self.inner.len; + let len = self.inner.len; + let rem = if len < n { self.inner.clear(); - len - n + n - len } else { self.inner.drain(..n); 0 @@ -186,12 +186,12 @@ impl<T, A: Allocator> DoubleEndedIterator for IntoIter<T, A> { #[inline] fn advance_back_by(&mut self, n: usize) -> Result<(), NonZeroUsize> { let len = self.inner.len; - let rem = if len >= n { - self.inner.truncate(len - n); - 0 - } else { + let rem = if len < n { self.inner.clear(); n - len + } else { + self.inner.truncate(len - n); + 0 }; NonZeroUsize::new(rem).map_or(Ok(()), Err) } |
