fix dropck documentation for [T;0]
special-case
This commit is contained in:
parent
595316b400
commit
c8a3cafc0f
1 changed files with 4 additions and 3 deletions
|
@ -171,12 +171,13 @@
|
||||||
/// still be live when `T` gets dropped. The exact details of this analysis are not yet
|
/// still be live when `T` gets dropped. The exact details of this analysis are not yet
|
||||||
/// stably guaranteed and **subject to change**. Currently, the analysis works as follows:
|
/// stably guaranteed and **subject to change**. Currently, the analysis works as follows:
|
||||||
/// - If `T` has no drop glue, then trivially nothing is required to be live. This is the case if
|
/// - If `T` has no drop glue, then trivially nothing is required to be live. This is the case if
|
||||||
/// neither `T` nor any of its (recursive) fields have a destructor (`impl Drop`). [`PhantomData`]
|
/// neither `T` nor any of its (recursive) fields have a destructor (`impl Drop`). [`PhantomData`],
|
||||||
/// and [`ManuallyDrop`] are considered to never have a destructor, no matter their field type.
|
/// arrays of length 0 and [`ManuallyDrop`] are considered to never have a destructor, no matter
|
||||||
|
/// their field type.
|
||||||
/// - If `T` has drop glue, then, for all types `U` that are *owned* by any field of `T`,
|
/// - If `T` has drop glue, then, for all types `U` that are *owned* by any field of `T`,
|
||||||
/// recursively add the types and lifetimes that need to be live when `U` gets dropped. The set of
|
/// recursively add the types and lifetimes that need to be live when `U` gets dropped. The set of
|
||||||
/// owned types is determined by recursively traversing `T`:
|
/// owned types is determined by recursively traversing `T`:
|
||||||
/// - Recursively descend through `PhantomData`, `Box`, tuples, and arrays (including arrays of
|
/// - Recursively descend through `PhantomData`, `Box`, tuples, and arrays (excluding arrays of
|
||||||
/// length 0).
|
/// length 0).
|
||||||
/// - Stop at reference and raw pointer types as well as function pointers and function items;
|
/// - Stop at reference and raw pointer types as well as function pointers and function items;
|
||||||
/// they do not own anything.
|
/// they do not own anything.
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue