about summary refs log tree commit diff
path: root/library/core
diff options
context:
space:
mode:
authorYuki Okushi <jtitor@2k36.org>2022-10-18 21:21:32 +0900
committerGitHub <noreply@github.com>2022-10-18 21:21:32 +0900
commitb411b8861c06bd34aa279776dd48711e26b4163d (patch)
tree4164bfc95d4d89c1408865ecd9b04e3e124ee857 /library/core
parente04bbcb9b1e8f13c09252c7a43011a6b0c9b8dba (diff)
parent55d71c61b8797117ba0efa972514451a29c69c28 (diff)
downloadrust-b411b8861c06bd34aa279776dd48711e26b4163d.tar.gz
rust-b411b8861c06bd34aa279776dd48711e26b4163d.zip
Rollup merge of #103163 - SUPERCILEX:uninit-array-assume2, r=scottmcm
Remove all uses of array_assume_init

See https://github.com/rust-lang/rust/pull/103134#discussion_r997462733

r? `@scottmcm`
Diffstat (limited to 'library/core')
-rw-r--r--library/core/src/array/iter.rs5
-rw-r--r--library/core/src/array/mod.rs2
-rw-r--r--library/core/tests/lib.rs2
-rw-r--r--library/core/tests/mem.rs6
4 files changed, 7 insertions, 8 deletions
diff --git a/library/core/src/array/iter.rs b/library/core/src/array/iter.rs
index b3b26040067..b91c630183d 100644
--- a/library/core/src/array/iter.rs
+++ b/library/core/src/array/iter.rs
@@ -104,8 +104,7 @@ impl<T, const N: usize> IntoIter<T, N> {
     ///
     /// ```
     /// #![feature(array_into_iter_constructors)]
-    ///
-    /// #![feature(maybe_uninit_array_assume_init)]
+    /// #![feature(maybe_uninit_uninit_array_transpose)]
     /// #![feature(maybe_uninit_uninit_array)]
     /// use std::array::IntoIter;
     /// use std::mem::MaybeUninit;
@@ -134,7 +133,7 @@ impl<T, const N: usize> IntoIter<T, N> {
     ///     }
     ///
     ///     // SAFETY: We've initialized all N items
-    ///     unsafe { Ok(MaybeUninit::array_assume_init(buffer)) }
+    ///     unsafe { Ok(buffer.transpose().assume_init()) }
     /// }
     ///
     /// let r: [_; 4] = next_chunk(&mut (10..16)).unwrap();
diff --git a/library/core/src/array/mod.rs b/library/core/src/array/mod.rs
index b82bbf2267a..04dd821efde 100644
--- a/library/core/src/array/mod.rs
+++ b/library/core/src/array/mod.rs
@@ -912,7 +912,7 @@ where
 
     mem::forget(guard);
     // SAFETY: All elements of the array were populated in the loop above.
-    let output = unsafe { MaybeUninit::array_assume_init(array) };
+    let output = unsafe { array.transpose().assume_init() };
     Ok(Try::from_output(output))
 }
 
diff --git a/library/core/tests/lib.rs b/library/core/tests/lib.rs
index b5c34f5df3b..b1f492381b1 100644
--- a/library/core/tests/lib.rs
+++ b/library/core/tests/lib.rs
@@ -49,8 +49,8 @@
 #![feature(slice_from_ptr_range)]
 #![feature(split_as_slice)]
 #![feature(maybe_uninit_uninit_array)]
-#![feature(maybe_uninit_array_assume_init)]
 #![feature(maybe_uninit_write_slice)]
+#![feature(maybe_uninit_uninit_array_transpose)]
 #![feature(min_specialization)]
 #![feature(numfmt)]
 #![feature(step_trait)]
diff --git a/library/core/tests/mem.rs b/library/core/tests/mem.rs
index 6856d1a1f51..b0cc08a15f0 100644
--- a/library/core/tests/mem.rs
+++ b/library/core/tests/mem.rs
@@ -163,18 +163,18 @@ fn assume_init_good() {
 
 #[test]
 fn uninit_array_assume_init() {
-    let mut array: [MaybeUninit<i16>; 5] = MaybeUninit::uninit_array();
+    let mut array = [MaybeUninit::<i16>::uninit(); 5];
     array[0].write(3);
     array[1].write(1);
     array[2].write(4);
     array[3].write(1);
     array[4].write(5);
 
-    let array = unsafe { MaybeUninit::array_assume_init(array) };
+    let array = unsafe { array.transpose().assume_init() };
 
     assert_eq!(array, [3, 1, 4, 1, 5]);
 
-    let [] = unsafe { MaybeUninit::<!>::array_assume_init([]) };
+    let [] = unsafe { [MaybeUninit::<!>::uninit(); 0].transpose().assume_init() };
 }
 
 #[test]