Revert #85176 addition of clone_from for ManuallyDrop

Forwarding `clone_from` to the inner value changes the observable
behavior, as previously the inner value would *not* be dropped by the
default implementation.
This commit is contained in:
Peter Todd 2021-05-27 14:01:16 -04:00
parent ea78d1edf3
commit 5b2076ff01
No known key found for this signature in database
GPG Key ID: 2481403DA5F091FB

View File

@ -44,7 +44,7 @@ use crate::ptr;
/// [`MaybeUninit<T>`]: crate::mem::MaybeUninit
#[stable(feature = "manually_drop", since = "1.20.0")]
#[lang = "manually_drop"]
#[derive(Copy, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Hash)]
#[derive(Copy, Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Hash)]
#[repr(transparent)]
pub struct ManuallyDrop<T: ?Sized> {
value: T,
@ -160,16 +160,3 @@ impl<T: ?Sized> DerefMut for ManuallyDrop<T> {
&mut self.value
}
}
#[stable(feature = "manually_drop", since = "1.20.0")]
impl<T: Clone> Clone for ManuallyDrop<T> {
#[inline]
fn clone(&self) -> ManuallyDrop<T> {
ManuallyDrop { value: self.value.clone() }
}
#[inline]
fn clone_from(&mut self, other: &Self) {
self.value.clone_from(&other.value)
}
}