about summary refs log tree commit diff
diff options
context:
space:
mode:
authorJoshua Liebow-Feeser <joshlf@users.noreply.github.com>2021-08-26 16:07:36 -0700
committerGitHub <noreply@github.com>2021-08-26 16:07:36 -0700
commit01b9fac09924de8be7fd3479d8a900f57b9c710f (patch)
treefcf8ccf928de118b01dcbe04b94c4dae6d642f98
parentad02dc46badee510bd3a2c093edf80fcaade91b1 (diff)
downloadrust-01b9fac09924de8be7fd3479d8a900f57b9c710f.tar.gz
rust-01b9fac09924de8be7fd3479d8a900f57b9c710f.zip
Clarify that ManuallyDrop<T> has same layout as T
-rw-r--r--library/core/src/mem/manually_drop.rs11
1 files changed, 6 insertions, 5 deletions
diff --git a/library/core/src/mem/manually_drop.rs b/library/core/src/mem/manually_drop.rs
index d86939454be..7ff99aa4e0f 100644
--- a/library/core/src/mem/manually_drop.rs
+++ b/library/core/src/mem/manually_drop.rs
@@ -4,11 +4,12 @@ use crate::ptr;
 /// A wrapper to inhibit compiler from automatically calling `T`’s destructor.
 /// This wrapper is 0-cost.
 ///
-/// `ManuallyDrop<T>` is subject to the same layout optimizations as `T`.
-/// As a consequence, it has *no effect* on the assumptions that the compiler makes
-/// about its contents. For example, initializing a `ManuallyDrop<&mut T>`
-/// with [`mem::zeroed`] is undefined behavior.
-/// If you need to handle uninitialized data, use [`MaybeUninit<T>`] instead.
+/// `ManuallyDrop<T>` is guaranteed to have the same layout as `T`, and is subject
+/// to the same layout optimizations as `T`. As a consequence, it has *no effect*
+/// on the assumptions that the compiler makes about its contents. For example,
+/// initializing a `ManuallyDrop<&mut T>` with [`mem::zeroed`] is undefined
+/// behavior. If you need to handle uninitialized data, use [`MaybeUninit<T>`]
+/// instead.
 ///
 /// Note that accessing the value inside a `ManuallyDrop<T>` is safe.
 /// This means that a `ManuallyDrop<T>` whose content has been dropped must not