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`

```` /// ```