about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--library/core/src/iter/adapters/flatten.rs8
1 files changed, 2 insertions, 6 deletions
diff --git a/library/core/src/iter/adapters/flatten.rs b/library/core/src/iter/adapters/flatten.rs
index 9e0f6d2905d..48880a4d91a 100644
--- a/library/core/src/iter/adapters/flatten.rs
+++ b/library/core/src/iter/adapters/flatten.rs
@@ -319,12 +319,8 @@ where
             let (lower, upper) = self.iter.size_hint();
 
             let lower = lower.saturating_mul(fixed_size).saturating_add(lo);
-            let upper = upper.and_then(|i| i.checked_mul(fixed_size));
-            let upper = fhi
-                .zip_with(bhi, usize::checked_add)
-                .flatten()
-                .zip_with(upper, usize::checked_add)
-                .flatten();
+            let upper =
+                try { fhi?.checked_add(bhi?)?.checked_add(fixed_size.checked_mul(upper?)?)? };
 
             return (lower, upper);
         }