Rollup merge of #129424 - coolreader18:stabilize-pin_as_deref_mut, r=dtolnay

Stabilize `Pin::as_deref_mut()`

Tracking issue: closes #86918

Stabilizing the following API:

```rust
impl<Ptr: DerefMut> Pin<Ptr> {
    pub fn as_deref_mut(self: Pin<&mut Pin<Ptr>>) -> Pin<&mut Ptr::Target>;
}
```

I know that an FCP has not been started yet, but this isn't a very complex stabilization, and I'm hoping this can motivate an FCP to *get* started - this has been pending for a while and it's a very useful function when writing Future impls.

r? ``@jonhoo``
This commit is contained in:
Matthias Krüger 2024-10-14 17:06:35 +02:00 committed by GitHub
commit 7ed6d1cd38
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -1422,7 +1422,7 @@ pub fn as_mut(&mut self) -> Pin<&mut Ptr::Target> {
/// move in the future, and this method does not enable the pointee to move. "Malicious"
/// implementations of `Ptr::DerefMut` are likewise ruled out by the contract of
/// `Pin::new_unchecked`.
#[unstable(feature = "pin_deref_mut", issue = "86918")]
#[stable(feature = "pin_deref_mut", since = "CURRENT_RUSTC_VERSION")]
#[must_use = "`self` will be dropped if the result is not used"]
#[inline(always)]
pub fn as_deref_mut(self: Pin<&mut Pin<Ptr>>) -> Pin<&mut Ptr::Target> {