Skip to content

Commit

Permalink
Clarify example in Pin::new_unchecked docs
Browse files Browse the repository at this point in the history
  • Loading branch information
fzs111 committed Sep 23, 2023
1 parent 959b2c7 commit 0f248d8
Showing 1 changed file with 4 additions and 1 deletion.
5 changes: 4 additions & 1 deletion library/core/src/pin.rs
Original file line number Diff line number Diff line change
Expand Up @@ -572,7 +572,10 @@ impl<P: Deref> Pin<P> {
/// // though we have previously pinned it! We have violated the pinning API contract.
/// }
/// ```
/// A value, once pinned, must remain pinned forever (unless its type implements `Unpin`).
/// A value, once pinned, must remain pinned until it is dropped (unless its type implements
/// `Unpin`). Because `Pin<&mut T>` does not own the value, dropping the `Pin` will not drop
/// the value and will not end the pinning contract. So moving the value after dropping the
/// `Pin<&mut T>` is still a violation of the API contract.
///
/// Similarly, calling `Pin::new_unchecked` on an `Rc<T>` is unsafe because there could be
/// aliases to the same data that are not subject to the pinning restrictions:
Expand Down

0 comments on commit 0f248d8

Please sign in to comment.