File tree 1 file changed +4
-4
lines changed
1 file changed +4
-4
lines changed Original file line number Diff line number Diff line change 7
7
// except according to those terms.
8
8
#![ allow( dead_code) ]
9
9
use core:: {
10
- mem:: { self , MaybeUninit } ,
10
+ mem:: MaybeUninit ,
11
11
ptr,
12
12
sync:: atomic:: { AtomicUsize , Ordering :: Relaxed } ,
13
13
} ;
@@ -73,7 +73,7 @@ impl LazyBool {
73
73
#[ inline( always) ]
74
74
pub unsafe fn slice_assume_init_mut < T > ( slice : & mut [ MaybeUninit < T > ] ) -> & mut [ T ] {
75
75
// SAFETY: `MaybeUninit<T>` is guaranteed to be layout-compatible with `T`.
76
- mem :: transmute ( slice)
76
+ & mut * ( slice as * mut [ MaybeUninit < T > ] as * mut [ T ] )
77
77
}
78
78
79
79
#[ inline]
@@ -87,7 +87,7 @@ pub fn slice_as_uninit<T>(slice: &[T]) -> &[MaybeUninit<T>] {
87
87
// SAFETY: `MaybeUninit<T>` is guaranteed to be layout-compatible with `T`.
88
88
// There is no risk of writing a `MaybeUninit<T>` into the result since
89
89
// the result isn't mutable.
90
- unsafe { mem :: transmute ( slice) }
90
+ unsafe { & * ( slice as * const [ T ] as * const [ MaybeUninit < T > ] ) }
91
91
}
92
92
93
93
/// View an mutable initialized array as potentially-uninitialized.
@@ -97,5 +97,5 @@ pub fn slice_as_uninit<T>(slice: &[T]) -> &[MaybeUninit<T>] {
97
97
#[ inline( always) ]
98
98
pub unsafe fn slice_as_uninit_mut < T > ( slice : & mut [ T ] ) -> & mut [ MaybeUninit < T > ] {
99
99
// SAFETY: `MaybeUninit<T>` is guaranteed to be layout-compatible with `T`.
100
- mem :: transmute ( slice)
100
+ & mut * ( slice as * mut [ T ] as * mut [ MaybeUninit < T > ] )
101
101
}
You can’t perform that action at this time.
0 commit comments