diff options
| author | Brendan Zabarauskas <bjzaba@yahoo.com.au> | 2014-11-10 00:11:28 +1100 |
|---|---|---|
| committer | Brendan Zabarauskas <bjzaba@yahoo.com.au> | 2014-11-13 02:02:44 +1100 |
| commit | e51cc089da7f5a067d348ee48f494c5bca662f95 (patch) | |
| tree | 999f0ab2a748880de52b1d5d18b51b9151ceaeab /src/libstd/num | |
| parent | 7e57cd843ccf303d1387ced8d331cb1c19cdaf1c (diff) | |
| download | rust-e51cc089da7f5a067d348ee48f494c5bca662f95.tar.gz rust-e51cc089da7f5a067d348ee48f494c5bca662f95.zip | |
Move checked arithmetic operators into Int trait
Diffstat (limited to 'src/libstd/num')
| -rw-r--r-- | src/libstd/num/mod.rs | 43 | ||||
| -rw-r--r-- | src/libstd/num/strconv.rs | 8 |
2 files changed, 25 insertions, 26 deletions
diff --git a/src/libstd/num/mod.rs b/src/libstd/num/mod.rs index fefde35ea21..2be88e01eed 100644 --- a/src/libstd/num/mod.rs +++ b/src/libstd/num/mod.rs @@ -24,7 +24,6 @@ pub use core::num::{Num, div_rem, Zero, zero, One, one}; pub use core::num::{Signed, abs, signum}; pub use core::num::{Unsigned, pow, Bounded}; pub use core::num::{Primitive, Int, UnsignedInt}; -pub use core::num::{CheckedAdd, CheckedSub, CheckedMul, CheckedDiv}; pub use core::num::{cast, FromPrimitive, NumCast, ToPrimitive}; pub use core::num::{next_power_of_two, is_power_of_two}; pub use core::num::{checked_next_power_of_two}; @@ -636,36 +635,36 @@ mod tests { #[test] fn test_checked_add() { let five_less = uint::MAX - 5; - assert_eq!(five_less.checked_add(&0), Some(uint::MAX - 5)); - assert_eq!(five_less.checked_add(&1), Some(uint::MAX - 4)); - assert_eq!(five_less.checked_add(&2), Some(uint::MAX - 3)); - assert_eq!(five_less.checked_add(&3), Some(uint::MAX - 2)); - assert_eq!(five_less.checked_add(&4), Some(uint::MAX - 1)); - assert_eq!(five_less.checked_add(&5), Some(uint::MAX)); - assert_eq!(five_less.checked_add(&6), None); - assert_eq!(five_less.checked_add(&7), None); + assert_eq!(five_less.checked_add(0), Some(uint::MAX - 5)); + assert_eq!(five_less.checked_add(1), Some(uint::MAX - 4)); + assert_eq!(five_less.checked_add(2), Some(uint::MAX - 3)); + assert_eq!(five_less.checked_add(3), Some(uint::MAX - 2)); + assert_eq!(five_less.checked_add(4), Some(uint::MAX - 1)); + assert_eq!(five_less.checked_add(5), Some(uint::MAX)); + assert_eq!(five_less.checked_add(6), None); + assert_eq!(five_less.checked_add(7), None); } #[test] fn test_checked_sub() { - assert_eq!(5u.checked_sub(&0), Some(5)); - assert_eq!(5u.checked_sub(&1), Some(4)); - assert_eq!(5u.checked_sub(&2), Some(3)); - assert_eq!(5u.checked_sub(&3), Some(2)); - assert_eq!(5u.checked_sub(&4), Some(1)); - assert_eq!(5u.checked_sub(&5), Some(0)); - assert_eq!(5u.checked_sub(&6), None); - assert_eq!(5u.checked_sub(&7), None); + assert_eq!(5u.checked_sub(0), Some(5)); + assert_eq!(5u.checked_sub(1), Some(4)); + assert_eq!(5u.checked_sub(2), Some(3)); + assert_eq!(5u.checked_sub(3), Some(2)); + assert_eq!(5u.checked_sub(4), Some(1)); + assert_eq!(5u.checked_sub(5), Some(0)); + assert_eq!(5u.checked_sub(6), None); + assert_eq!(5u.checked_sub(7), None); } #[test] fn test_checked_mul() { let third = uint::MAX / 3; - assert_eq!(third.checked_mul(&0), Some(0)); - assert_eq!(third.checked_mul(&1), Some(third)); - assert_eq!(third.checked_mul(&2), Some(third * 2)); - assert_eq!(third.checked_mul(&3), Some(third * 3)); - assert_eq!(third.checked_mul(&4), None); + assert_eq!(third.checked_mul(0), Some(0)); + assert_eq!(third.checked_mul(1), Some(third)); + assert_eq!(third.checked_mul(2), Some(third * 2)); + assert_eq!(third.checked_mul(3), Some(third * 3)); + assert_eq!(third.checked_mul(4), None); } macro_rules! test_next_power_of_two( diff --git a/src/libstd/num/strconv.rs b/src/libstd/num/strconv.rs index 088ea89818e..875d03d6c25 100644 --- a/src/libstd/num/strconv.rs +++ b/src/libstd/num/strconv.rs @@ -601,11 +601,11 @@ pub fn from_str_radix_int<T: Int>(src: &str, radix: uint) -> Option<T> { Some(x) => x, None => return None, }; - result = match result.checked_mul(&radix) { + result = match result.checked_mul(radix) { Some(result) => result, None => return None, }; - result = match result.checked_add(&x) { + result = match result.checked_add(x) { Some(result) => result, None => return None, }; @@ -616,11 +616,11 @@ pub fn from_str_radix_int<T: Int>(src: &str, radix: uint) -> Option<T> { Some(x) => x, None => return None, }; - result = match result.checked_mul(&radix) { + result = match result.checked_mul(radix) { Some(result) => result, None => return None, }; - result = match result.checked_sub(&x) { + result = match result.checked_sub(x) { Some(result) => result, None => return None, }; |
