]> git.lizzy.rs Git - rust.git/commitdiff
add u128/i128 to sum/product implementors
authorZack M. Davis <code@zackmdavis.net>
Fri, 14 Jul 2017 15:50:22 +0000 (08:50 -0700)
committerZack M. Davis <code@zackmdavis.net>
Fri, 14 Jul 2017 17:51:14 +0000 (10:51 -0700)
Resolves #43235.

src/libcore/iter/traits.rs
src/test/run-pass/i128.rs
src/test/run-pass/u128.rs

index 679cf3a9b23eea9eb38fd05aab601072e687fa3f..d35aa026685ddb802ab42f020ed8e23b01f37603 100644 (file)
@@ -732,7 +732,7 @@ fn product<I: Iterator<Item=&'a $a>>(iter: I) -> $a {
     )*)
 }
 
-integer_sum_product! { i8 i16 i32 i64 isize u8 u16 u32 u64 usize }
+integer_sum_product! { i8 i16 i32 i64 i128 isize u8 u16 u32 u64 u128 usize }
 float_sum_product! { f32 f64 }
 
 /// An iterator adapter that produces output as long as the underlying
index c5057f70c065ae1dc784b4c6fe36f57e3835d023..7c14d34b0ee121a3ec2b806474cd2699922dcf78 100644 (file)
@@ -109,4 +109,8 @@ fn main() {
     assert_eq!(b(-87559967289969187895646876466835277875_i128) /
                b(84285771033834995895337664386045050880_i128),
                -1i128);
+
+    // iter-arithmetic traits
+    assert_eq!(10i128, [1i128, 2, 3, 4].iter().sum());
+    assert_eq!(24i128, [1i128, 2, 3, 4].iter().product());
 }
index cfd616c56b4f02ed18e42a4170d8207d0586a9fe..b16f6c7b6af55820d9fb50b49a69608c9fbd560e 100644 (file)
@@ -122,4 +122,8 @@ fn main() {
     assert_eq!(b(0x679289ac23bb334f_36144401cf882172_u128) /
                b(0x7b0b271b64865f05_f54a7b72746c062f_u128),
                0u128);
+
+    // iter-arithmetic traits
+    assert_eq!(10u128, [1u128, 2, 3, 4].iter().sum());
+    assert_eq!(24u128, [1u128, 2, 3, 4].iter().product());
 }