diff options
| author | Trevor Spiteri <tspiteri@ieee.org> | 2022-03-11 11:07:45 +0100 |
|---|---|---|
| committer | Trevor Spiteri <tspiteri@ieee.org> | 2022-03-11 11:07:45 +0100 |
| commit | ed10356d52022ee3e9c195056d1795e6d22d5910 (patch) | |
| tree | 4b2b2622606dc2e3b190fe9b3b9afe053d1f542c | |
| parent | f58d51b3c00b1e30acd75aead202eb2248bb33f9 (diff) | |
| download | rust-ed10356d52022ee3e9c195056d1795e6d22d5910.tar.gz rust-ed10356d52022ee3e9c195056d1795e6d22d5910.zip | |
remove unnecessary try_opt for operations that cannot fail
| -rw-r--r-- | library/core/src/num/int_macros.rs | 6 | ||||
| -rw-r--r-- | library/core/src/num/uint_macros.rs | 3 |
2 files changed, 6 insertions, 3 deletions
diff --git a/library/core/src/num/int_macros.rs b/library/core/src/num/int_macros.rs index 199af081560..3665573ab0f 100644 --- a/library/core/src/num/int_macros.rs +++ b/library/core/src/num/int_macros.rs @@ -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) } } diff --git a/library/core/src/num/uint_macros.rs b/library/core/src/num/uint_macros.rs index feec448ebbd..baa23e08fe7 100644 --- a/library/core/src/num/uint_macros.rs +++ b/library/core/src/num/uint_macros.rs @@ -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) } } |
