@@ -20,7 +20,7 @@ pub fn waker<W>(wake: Arc<W>) -> Waker
2020where
2121 W : ArcWake + ' static ,
2222{
23- let ptr = Arc :: into_raw ( wake) as * const ( ) ;
23+ let ptr = Arc :: into_raw ( wake) . cast :: < ( ) > ( ) ;
2424
2525 unsafe { Waker :: from_raw ( RawWaker :: new ( ptr, waker_vtable :: < W > ( ) ) ) }
2626}
3131#[ allow( clippy:: redundant_clone) ] // The clone here isn't actually redundant.
3232unsafe fn increase_refcount < T : ArcWake > ( data : * const ( ) ) {
3333 // Retain Arc, but don't touch refcount by wrapping in ManuallyDrop
34- let arc = mem:: ManuallyDrop :: new ( Arc :: < T > :: from_raw ( data as * const T ) ) ;
34+ let arc = mem:: ManuallyDrop :: new ( Arc :: < T > :: from_raw ( data. cast :: < T > ( ) ) ) ;
3535 // Now increase refcount, but don't drop new refcount either
3636 let _arc_clone: mem:: ManuallyDrop < _ > = arc. clone ( ) ;
3737}
@@ -43,17 +43,17 @@ unsafe fn clone_arc_raw<T: ArcWake>(data: *const ()) -> RawWaker {
4343}
4444
4545unsafe fn wake_arc_raw < T : ArcWake > ( data : * const ( ) ) {
46- let arc: Arc < T > = Arc :: from_raw ( data as * const T ) ;
46+ let arc: Arc < T > = Arc :: from_raw ( data. cast :: < T > ( ) ) ;
4747 ArcWake :: wake ( arc) ;
4848}
4949
5050// used by `waker_ref`
5151unsafe fn wake_by_ref_arc_raw < T : ArcWake > ( data : * const ( ) ) {
5252 // Retain Arc, but don't touch refcount by wrapping in ManuallyDrop
53- let arc = mem:: ManuallyDrop :: new ( Arc :: < T > :: from_raw ( data as * const T ) ) ;
53+ let arc = mem:: ManuallyDrop :: new ( Arc :: < T > :: from_raw ( data. cast :: < T > ( ) ) ) ;
5454 ArcWake :: wake_by_ref ( & arc) ;
5555}
5656
5757unsafe fn drop_arc_raw < T : ArcWake > ( data : * const ( ) ) {
58- drop ( Arc :: < T > :: from_raw ( data as * const T ) )
58+ drop ( Arc :: < T > :: from_raw ( data. cast :: < T > ( ) ) )
5959}
0 commit comments