File tree 1 file changed +4
-1
lines changed
1 file changed +4
-1
lines changed Original file line number Diff line number Diff line change @@ -572,7 +572,10 @@ impl<P: Deref> Pin<P> {
572
572
/// // though we have previously pinned it! We have violated the pinning API contract.
573
573
/// }
574
574
/// ```
575
- /// A value, once pinned, must remain pinned forever (unless its type implements `Unpin`).
575
+ /// A value, once pinned, must remain pinned until it is dropped (unless its type implements
576
+ /// `Unpin`). Because `Pin<&mut T>` does not own the value, dropping the `Pin` will not drop
577
+ /// the value and will not end the pinning contract. So moving the value after dropping the
578
+ /// `Pin<&mut T>` is still a violation of the API contract.
576
579
///
577
580
/// Similarly, calling `Pin::new_unchecked` on an `Rc<T>` is unsafe because there could be
578
581
/// aliases to the same data that are not subject to the pinning restrictions:
You can’t perform that action at this time.
0 commit comments