We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
next_back
1 parent 04f4708 commit 6a40771Copy full SHA for 6a40771
1 file changed
src/types/tuple.rs
@@ -594,9 +594,11 @@ impl DoubleEndedIterator for BorrowedTupleIterator<'_, '_> {
594
#[inline]
595
fn next_back(&mut self) -> Option<Self::Item> {
596
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;
+ // Cannot underflow as self.index < self.length implies self.length > 0
+ let target_index = self.length - 1;
+ // SAFETY: target_index < self.length
600
+ let item = unsafe { self.tuple.get_borrowed_item_unchecked(target_index) };
601
+ self.length = target_index;
602
Some(item)
603
} else {
604
None
0 commit comments