From 30ad6252a3ab9e396c22d234a8b018df29c1dde9 Mon Sep 17 00:00:00 2001 From: "Zack M. Davis" Date: Fri, 14 Jul 2017 08:50:22 -0700 Subject: [PATCH] add u128/i128 to sum/product implementors Resolves #43235. --- src/libcore/iter/traits.rs | 2 +- src/test/run-pass/i128.rs | 4 ++++ src/test/run-pass/u128.rs | 4 ++++ 3 files changed, 9 insertions(+), 1 deletion(-) 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 @@ fn product>(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 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()); } -- 2.44.0