Skip to content

Commit

Permalink
perf(index): remove Idx bounds-checks from first + last methods
Browse files Browse the repository at this point in the history
  • Loading branch information
overlookmotel committed Sep 12, 2024
1 parent 20a7861 commit e283932
Showing 1 changed file with 4 additions and 5 deletions.
9 changes: 4 additions & 5 deletions crates/oxc_index/src/idxslice.rs
Original file line number Diff line number Diff line change
Expand Up @@ -409,26 +409,25 @@ impl<I: Idx, T> IndexSlice<I, [T]> {
/// Return the the last element, if we are not empty.
#[inline(always)]
pub fn last(&self) -> Option<&T> {
self.len().checked_sub(1).and_then(|i| self.get(I::from_usize(i)))
self.raw.last()
}

/// Return the the last element, if we are not empty.
#[inline]
pub fn last_mut(&mut self) -> Option<&mut T> {
let i = self.len().checked_sub(1)?;
self.get_mut(I::from_usize(i))
self.raw.last_mut()
}

/// Return the the first element, if we are not empty.
#[inline]
pub fn first(&self) -> Option<&T> {
self.get(I::from_usize(0))
self.raw.first()
}

/// Return the the first element, if we are not empty.
#[inline]
pub fn first_mut(&mut self) -> Option<&mut T> {
self.get_mut(I::from_usize(0))
self.raw.first_mut()
}

/// Copies elements from one part of the slice to another part of itself,
Expand Down

0 comments on commit e283932

Please sign in to comment.