Remove non-focused memory leaks in core
doctests for Miri. · model-checking/verify-rust-std@3a0fe26 (original) (raw)
`@@ -274,6 +274,8 @@ impl MaybeUninit {
`
274
274
`/// use std::mem::MaybeUninit;
`
275
275
`///
`
276
276
`/// let v: MaybeUninit<Vec> = MaybeUninit::new(vec![42]);
`
``
277
`+
/// # // Prevent leaks for Miri
`
``
278
`+
/// # unsafe { let _ = MaybeUninit::assume_init(v); }
`
277
279
```` /// ```
`278`
`280`
`///
`
`279`
`281`
`` /// [`assume_init`]: MaybeUninit::assume_init
``
`@@ -506,6 +508,8 @@ impl<T> MaybeUninit<T> {
`
`506`
`508`
`` /// // Create a reference into the `MaybeUninit<T>`. This is okay because we initialized it.
``
`507`
`509`
`/// let x_vec = unsafe { &*x.as_ptr() };
`
`508`
`510`
`/// assert_eq!(x_vec.len(), 3);
`
``
`511`
`+
/// # // Prevent leaks for Miri
`
``
`512`
`+
/// # unsafe { MaybeUninit::assume_init_drop(&mut x); }
`
`509`
`513`
```` /// ```
510
514
`///
`
511
515
`/// Incorrect usage of this method:
`
`@@ -545,6 +549,8 @@ impl MaybeUninit {
`
545
549
`/// let x_vec = unsafe { &mut *x.as_mut_ptr() };
`
546
550
`/// x_vec.push(3);
`
547
551
`/// assert_eq!(x_vec.len(), 4);
`
``
552
`+
/// # // Prevent leaks for Miri
`
``
553
`+
/// # unsafe { MaybeUninit::assume_init_drop(&mut x); }
`
548
554
```` /// ```
`549`
`555`
`///
`
`550`
`556`
`/// *Incorrect* usage of this method:
`
`@@ -746,6 +752,8 @@ impl<T> MaybeUninit<T> {
`
`746`
`752`
`/// use std::mem::MaybeUninit;
`
`747`
`753`
`///
`
`748`
`754`
`/// let mut x = MaybeUninit::<Vec<u32>>::uninit();
`
``
`755`
`+
/// # let mut x_mu = x;
`
``
`756`
`+
/// # let mut x = &mut x_mu;
`
`749`
`757`
`` /// // Initialize `x`:
``
`750`
`758`
`/// x.write(vec![1, 2, 3]);
`
`751`
`759`
`` /// // Now that our `MaybeUninit<_>` is known to be initialized, it is okay to
``
`@@ -755,6 +763,8 @@ impl<T> MaybeUninit<T> {
`
`755`
`763`
`/// x.assume_init_ref()
`
`756`
`764`
`/// };
`
`757`
`765`
`/// assert_eq!(x, &vec![1, 2, 3]);
`
``
`766`
`+
/// # // Prevent leaks for Miri
`
``
`767`
`+
/// # unsafe { MaybeUninit::assume_init_drop(&mut x_mu); }
`
`758`
`768`
```` /// ```
759
769
`///
`
760
770
`/// ### Incorrect usages of this method:
`
`@@ -1088,6 +1098,8 @@ impl MaybeUninit {
`
1088
1098
`/// let init = MaybeUninit::clone_from_slice(&mut dst, &src);
`
1089
1099
`///
`
1090
1100
`/// assert_eq!(init, src);
`
``
1101
`+
/// # // Prevent leaks for Miri
`
``
1102
`+
/// # unsafe { std::ptr::drop_in_place(init); }
`
1091
1103
```` /// ```
`1092`
`1104`
`///
`
`1093`
`1105`
```` /// ```