about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2017-07-16 12:42:56 +0000
committerbors <bors@rust-lang.org>2017-07-16 12:42:56 +0000
commit8f1339af2e5d1b33ec9ee3c8a3c531bcd61770fc (patch)
tree73ce39b7ac7e5998d443e28bfeed25a524dfd3fb /src
parentbe18613281e590fdb16f40b10c871abfd4bc9653 (diff)
parent30ad6252a3ab9e396c22d234a8b018df29c1dde9 (diff)
downloadrust-8f1339af2e5d1b33ec9ee3c8a3c531bcd61770fc.tar.gz
rust-8f1339af2e5d1b33ec9ee3c8a3c531bcd61770fc.zip
Auto merge of #43237 - zackmdavis:missing_sum_and_product_for_128_bit_integers, r=nagisa
add u128/i128 to sum/product implementors

Resolves #43235.
Diffstat (limited to 'src')
-rw-r--r--src/libcore/iter/traits.rs2
-rw-r--r--src/test/run-pass/i128.rs4
-rw-r--r--src/test/run-pass/u128.rs4
3 files changed, 9 insertions, 1 deletions
diff --git a/src/libcore/iter/traits.rs b/src/libcore/iter/traits.rs
index 679cf3a9b23..d35aa026685 100644
--- a/src/libcore/iter/traits.rs
+++ b/src/libcore/iter/traits.rs
@@ -732,7 +732,7 @@ macro_rules! float_sum_product {
     )*)
 }
 
-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
diff --git a/src/test/run-pass/i128.rs b/src/test/run-pass/i128.rs
index c5057f70c06..7c14d34b0ee 100644
--- a/src/test/run-pass/i128.rs
+++ b/src/test/run-pass/i128.rs
@@ -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());
 }
diff --git a/src/test/run-pass/u128.rs b/src/test/run-pass/u128.rs
index cfd616c56b4..b16f6c7b6af 100644
--- a/src/test/run-pass/u128.rs
+++ b/src/test/run-pass/u128.rs
@@ -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());
 }