@@ -274,6 +274,8 @@ impl<T> MaybeUninit<T> {
274274 /// use std::mem::MaybeUninit;
275275 ///
276276 /// let v: MaybeUninit<Vec<u8>> = MaybeUninit::new(vec![42]);
277+ /// # // Prevent leaks for Miri
278+ /// # unsafe { let _ = MaybeUninit::assume_init(v); }
277279 /// ```
278280 ///
279281 /// [`assume_init`]: MaybeUninit::assume_init
@@ -506,6 +508,8 @@ impl<T> MaybeUninit<T> {
506508 /// // Create a reference into the `MaybeUninit<T>`. This is okay because we initialized it.
507509 /// let x_vec = unsafe { &*x.as_ptr() };
508510 /// assert_eq!(x_vec.len(), 3);
511+ /// # // Prevent leaks for Miri
512+ /// # unsafe { MaybeUninit::assume_init_drop(&mut x); }
509513 /// ```
510514 ///
511515 /// *Incorrect* usage of this method:
@@ -545,6 +549,8 @@ impl<T> MaybeUninit<T> {
545549 /// let x_vec = unsafe { &mut *x.as_mut_ptr() };
546550 /// x_vec.push(3);
547551 /// assert_eq!(x_vec.len(), 4);
552+ /// # // Prevent leaks for Miri
553+ /// # unsafe { MaybeUninit::assume_init_drop(&mut x); }
548554 /// ```
549555 ///
550556 /// *Incorrect* usage of this method:
@@ -746,6 +752,8 @@ impl<T> MaybeUninit<T> {
746752 /// use std::mem::MaybeUninit;
747753 ///
748754 /// let mut x = MaybeUninit::<Vec<u32>>::uninit();
755+ /// # let mut x_mu = x;
756+ /// # let mut x = &mut x_mu;
749757 /// // Initialize `x`:
750758 /// x.write(vec![1, 2, 3]);
751759 /// // Now that our `MaybeUninit<_>` is known to be initialized, it is okay to
@@ -755,6 +763,8 @@ impl<T> MaybeUninit<T> {
755763 /// x.assume_init_ref()
756764 /// };
757765 /// assert_eq!(x, &vec![1, 2, 3]);
766+ /// # // Prevent leaks for Miri
767+ /// # unsafe { MaybeUninit::assume_init_drop(&mut x_mu); }
758768 /// ```
759769 ///
760770 /// ### *Incorrect* usages of this method:
@@ -1088,6 +1098,8 @@ impl<T> MaybeUninit<T> {
10881098 /// let init = MaybeUninit::clone_from_slice(&mut dst, &src);
10891099 ///
10901100 /// assert_eq!(init, src);
1101+ /// # // Prevent leaks for Miri
1102+ /// # unsafe { std::ptr::drop_in_place(init); }
10911103 /// ```
10921104 ///
10931105 /// ```
0 commit comments