mirror of
https://github.com/eyre-rs/eyre.git
synced 2025-09-28 05:21:34 +00:00
Explicitly specify all cast types in unsafe code
This commit is contained in:
parent
d57f80c822
commit
4118197eac
@ -233,7 +233,7 @@ impl Error {
|
||||
if self.is::<E>() {
|
||||
let outer = ManuallyDrop::new(self);
|
||||
unsafe {
|
||||
let error = ptr::read(outer.inner.error() as *const _ as *const E);
|
||||
let error = ptr::read(outer.inner.error() as *const (dyn StdError + Send + Sync) as *const E);
|
||||
let inner = ptr::read(&outer.inner);
|
||||
let erased = ManuallyDrop::into_inner(inner);
|
||||
(erased.vtable.object_drop_front)(erased);
|
||||
@ -285,7 +285,7 @@ impl Error {
|
||||
E: Display + Debug + Send + Sync + 'static,
|
||||
{
|
||||
if self.is::<E>() {
|
||||
Some(unsafe { &*(self.inner.error() as *const _ as *const E) })
|
||||
Some(unsafe { &*(self.inner.error() as *const (dyn StdError + Send + Sync) as *const E) })
|
||||
} else {
|
||||
None
|
||||
}
|
||||
@ -297,7 +297,7 @@ impl Error {
|
||||
E: Display + Debug + Send + Sync + 'static,
|
||||
{
|
||||
if self.is::<E>() {
|
||||
Some(unsafe { &mut *(self.inner.error_mut() as *mut _ as *mut E) })
|
||||
Some(unsafe { &mut *(self.inner.error_mut() as *mut (dyn StdError + Send + Sync) as *mut E) })
|
||||
} else {
|
||||
None
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user