diff --git a/src/disjoint_mut.rs b/src/disjoint_mut.rs index acc02d636..5471f2a38 100644 --- a/src/disjoint_mut.rs +++ b/src/disjoint_mut.rs @@ -1005,14 +1005,14 @@ unsafe impl AsMutPtr for [V] { } } -/// SAFETY: We never materialize a `&mut [V]` since we go use [`addr_of_mut!`] +/// SAFETY: We never materialize a `&mut [V]` since we use [`&raw mut`](`addr_of_mut!`) /// to create a `*mut [V]` directly, which we then unsize cast. unsafe impl AsMutPtr for Box<[V]> { type Target = V; + // SAFETY: `AsMutPtr::as_mut_ptr` may derefence `ptr`. unsafe fn as_mut_ptr(ptr: *mut Self) -> *mut Self::Target { - // SAFETY: `AsMutPtr::as_mut_ptr` may derefence `ptr`. - unsafe { addr_of_mut!(**ptr) }.cast() + unsafe { &raw mut **ptr }.cast() } fn len(&self) -> usize {