]> git.lizzy.rs Git - rust.git/commitdiff
Update zip for better codegen, see discussion
authorAlbin Hedman <albin9604@gmail.com>
Wed, 16 Dec 2020 17:32:29 +0000 (18:32 +0100)
committerAlbin Hedman <albin9604@gmail.com>
Wed, 16 Dec 2020 17:35:56 +0000 (18:35 +0100)
library/core/src/array/mod.rs

index 02b771863e92bfeb229da33cdd665272294120ae..9de87922f54f24a08cd0a8be1bff54fd1898a5c0 100644 (file)
@@ -481,8 +481,8 @@ fn drop(&mut self) {
         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) }