Use inline const instead of unsafe to construct arrays in `MaybeUnini… · model-checking/verify-rust-std@a2c3406 (original) (raw)

Original file line number Diff line number Diff line change
@@ -120,12 +120,8 @@ use crate::slice;
120 120 /// use std::mem::{self, MaybeUninit};
121 121 ///
122 122 /// let data = {
123 -/// // Create an uninitialized array of `MaybeUninit`. The `assume_init` is
124 -/// // safe because the type we are claiming to have initialized here is a
125 -/// // bunch of `MaybeUninit`s, which do not require initialization.
126 -/// let mut data: [MaybeUninit<Vec>; 1000] = unsafe {
127 -/// MaybeUninit::uninit().assume_init()
128 -/// };
123 +/// // Create an uninitialized array of `MaybeUninit`.
124 +/// let mut data: [MaybeUninit<Vec>; 1000] = [const { MaybeUninit::uninit() }; 1000];
129 125 ///
130 126 /// // Dropping a `MaybeUninit` does nothing, so if there is a panic during this loop,
131 127 /// // we have a memory leak, but there is no memory safety issue.
@@ -147,10 +143,8 @@ use crate::slice;
147 143 /// ```
148 144 /// use std::mem::MaybeUninit;
149 145 ///
150 -/// // Create an uninitialized array of `MaybeUninit`. The `assume_init` is
151 -/// // safe because the type we are claiming to have initialized here is a
152 -/// // bunch of `MaybeUninit`s, which do not require initialization.
153 -/// let mut data: [MaybeUninit; 1000] = unsafe { MaybeUninit::uninit().assume_init() };
146 +/// // Create an uninitialized array of `MaybeUninit`.
147 +/// let mut data: [MaybeUninit; 1000] = [const { MaybeUninit::uninit() }; 1000];
154 148 /// // Count the number of elements we have assigned.
155 149 /// let mut data_len: usize = 0;
156 150 ///