remove unnecessary try_opt for operations that cannot fail

This commit is contained in:
Trevor Spiteri 2022-03-11 11:07:45 +01:00
parent f58d51b3c0
commit ed10356d52
2 changed files with 6 additions and 3 deletions

View file

@ -2166,7 +2166,8 @@ macro_rules! int_impl {
let r = try_opt!(self.checked_rem(rhs));
let m = if (r > 0 && rhs < 0) || (r < 0 && rhs > 0) {
try_opt!(r.checked_add(rhs))
// r + rhs cannot overflow because they have opposite signs
r + rhs
} else {
r
};
@ -2174,7 +2175,8 @@ macro_rules! int_impl {
if m == 0 {
Some(self)
} else {
self.checked_add(try_opt!(rhs.checked_sub(m)))
// rhs - m cannot overflow because m has the same sign as rhs
self.checked_add(rhs - m)
}
}

View file

@ -2119,7 +2119,8 @@ macro_rules! uint_impl {
pub const fn checked_next_multiple_of(self, rhs: Self) -> Option<Self> {
match try_opt!(self.checked_rem(rhs)) {
0 => Some(self),
r => self.checked_add(try_opt!(rhs.checked_sub(r)))
// rhs - r cannot overflow because r is smaller than rhs
r => self.checked_add(rhs - r)
}
}