about summary refs log tree commit diff
path: root/library/core/src/array
diff options
context:
space:
mode:
authorAlbin Hedman <albin9604@gmail.com>2020-12-16 18:32:29 +0100
committerAlbin Hedman <albin9604@gmail.com>2020-12-16 18:35:56 +0100
commitbe2c8f2d436d777cbdac73f6dd238ea135048ff5 (patch)
treee03373ad110e4c98ae6e4a15623643afef7846b0 /library/core/src/array
parent2f35fb1e116d5da9e851c1a298390078ea7089ed (diff)
downloadrust-be2c8f2d436d777cbdac73f6dd238ea135048ff5.tar.gz
rust-be2c8f2d436d777cbdac73f6dd238ea135048ff5.zip
Update zip for better codegen, see discussion
Diffstat (limited to 'library/core/src/array')
-rw-r--r--library/core/src/array/mod.rs4
1 files changed, 2 insertions, 2 deletions
diff --git a/library/core/src/array/mod.rs b/library/core/src/array/mod.rs
index 02b771863e9..9de87922f54 100644
--- a/library/core/src/array/mod.rs
+++ b/library/core/src/array/mod.rs
@@ -481,8 +481,8 @@ impl<T, const N: usize> [T; N] {
         use crate::mem::MaybeUninit;
 
         let mut dst = MaybeUninit::uninit_array::<N>();
-        for ((lhs, rhs), dst) in IntoIter::new(self).zip(IntoIter::new(rhs)).zip(&mut dst) {
-            dst.write((lhs, rhs));
+        for (i, (lhs, rhs)) in IntoIter::new(self).zip(IntoIter::new(rhs)).enumerate() {
+            dst[i].write((lhs, rhs));
         }
         // FIXME: Convert to crate::mem::transmute once it works with generics.
         // unsafe { crate::mem::transmute::<[MaybeUninit<U>; N], [U; N]>(dst) }