Skip to content

Commit b0a695e

Browse files
authored
Merge pull request #21 from WaffleLapkin/remove_unsoundness
remove unsound `MaybeUninitSlice::from_init_mut` and useless `...::from_init`
2 parents 9fa1aa2 + 48a044b commit b0a695e

File tree

1 file changed

+0
-24
lines changed

1 file changed

+0
-24
lines changed

src/ext/slice_ext.rs

-24
Original file line numberDiff line numberDiff line change
@@ -164,12 +164,6 @@ pub trait MaybeUninitSlice:
164164
/// [inv]: core::mem#initialization-invariant
165165
/// [`MaybeUninit::assume_init`]: core::mem::MaybeUninit::assume_init
166166
unsafe fn assume_init_mut(&mut self) -> &mut [Self::InitItem];
167-
168-
/// Create self from initialized slice
169-
fn from_init(init: &[Self::InitItem]) -> &Self;
170-
171-
/// Create self from initialized slice
172-
fn from_init_mut(init: &mut [Self::InitItem]) -> &mut Self;
173167
}
174168

175169
impl<T> Slice for [T] {
@@ -223,22 +217,4 @@ impl<T> MaybeUninitSlice for [MaybeUninit<T>] {
223217
// `uninit` state
224218
&mut *(self as *mut [MaybeUninit<T>] as *mut [T])
225219
}
226-
227-
#[inline]
228-
fn from_init(init: &[Self::InitItem]) -> &Self {
229-
// ## Safety
230-
//
231-
// `MaybeUninit<T>` is guaranteed to have the same ABI as `T`, so
232-
// it's safe to cast `&[T]` to `&[MaybeUninit<T>]`
233-
unsafe { &*(init as *const [T] as *const [MaybeUninit<T>]) }
234-
}
235-
236-
#[inline]
237-
fn from_init_mut(init: &mut [Self::InitItem]) -> &mut Self {
238-
// ## Safety
239-
//
240-
// `MaybeUninit<T>` is guaranteed to have the same ABI as `T`, so
241-
// it's safe to cast `&mut [T]` to `&mut [MaybeUninit<T>]`
242-
unsafe { &mut *(init as *mut [T] as *mut [MaybeUninit<T>]) }
243-
}
244220
}

0 commit comments

Comments
 (0)