Skip to content

Commit a799eec

Browse files
author
M Farkas-Dyck
committed
Redefine transmute to avert errors when compiler can't prove equal sizes
Else the compiler fails in some cases when using `arr` macro with a type parametre.
1 parent d1851f3 commit a799eec

File tree

1 file changed

+7
-1
lines changed

1 file changed

+7
-1
lines changed

src/lib.rs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,6 @@ use core::{mem, ptr, slice};
5353

5454
use core::marker::PhantomData;
5555
use core::mem::ManuallyDrop;
56-
pub use core::mem::transmute;
5756
use core::ops::{Deref, DerefMut};
5857

5958
use typenum::bit::{B0, B1};
@@ -435,6 +434,13 @@ where
435434
}
436435
}
437436

437+
#[inline]
438+
pub unsafe fn transmute<A, B>(a: A) -> B {
439+
let b = ::core::ptr::read(&a as *const A as *const B);
440+
::core::mem::forget(a);
441+
b
442+
}
443+
438444
#[cfg(test)]
439445
mod test {
440446
// Compile with:

0 commit comments

Comments
 (0)