Skip to content

Commit 6a40771

Browse files
committed
fix next_back implementation
1 parent 04f4708 commit 6a40771

1 file changed

Lines changed: 5 additions & 3 deletions

File tree

src/types/tuple.rs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -594,9 +594,11 @@ impl DoubleEndedIterator for BorrowedTupleIterator<'_, '_> {
594594
#[inline]
595595
fn next_back(&mut self) -> Option<Self::Item> {
596596
if self.index < self.length {
597-
// SAFETY: self.index < self.length
598-
let item = unsafe { self.tuple.get_borrowed_item_unchecked(self.index) };
599-
self.length -= 1;
597+
// Cannot underflow as self.index < self.length implies self.length > 0
598+
let target_index = self.length - 1;
599+
// SAFETY: target_index < self.length
600+
let item = unsafe { self.tuple.get_borrowed_item_unchecked(target_index) };
601+
self.length = target_index;
600602
Some(item)
601603
} else {
602604
None

0 commit comments

Comments
 (0)