diff options
| author | Matthias Krüger <matthias.krueger@famsik.de> | 2024-08-03 11:17:42 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-08-03 11:17:42 +0200 |
| commit | 1f700139f8d5cb458679e6f8c0a0aa247b56c79d (patch) | |
| tree | 989cf0b55b610ede475f7648283a23766e8a2b60 /library/std/src/os/windows/io/raw.rs | |
| parent | 8aa18290a42d453a12eebe14855cc3d58d873828 (diff) | |
| parent | 84d84daf1735d8996cdaf3aea487051215cffdf3 (diff) | |
| download | rust-1f700139f8d5cb458679e6f8c0a0aa247b56c79d.tar.gz rust-1f700139f8d5cb458679e6f8c0a0aa247b56c79d.zip | |
Rollup merge of #127586 - zachs18:more-must-use, r=cuviper
Add `#[must_use]` to some `into_raw*` functions.
cc #121287
r? ``@cuviper``
Adds `#[must_use = "losing the pointer will leak memory"]`[^1] to `Box::into_raw(_with_allocator)`, `Vec::into_raw_parts(_with_alloc)`, `String::into_raw_parts`[^2], and `rc::{Rc, Weak}::into_raw_with_allocator` (Rc's normal `into_raw` and all of `Arc`'s `into_raw*`s are already `must_use`).
Adds `#[must_use = "losing the raw <resource name may leak resources"]` to `IntoRawFd::into_raw_fd`, `IntoRawSocket::into_raw_socket`, and `IntoRawHandle::into_raw_handle`.
[^1]: "*will* leak memory" may be too-strong wording (since `Box`/`Vec`/`String`/`rc::Weak` might not have a backing allocation), but I left it as-is for simplicity and consistency.
[^2]: `String::into_raw_parts`'s `must_use` message is changed from the previous (possibly misleading) "`self` will be dropped if the result is not used".
Diffstat (limited to 'library/std/src/os/windows/io/raw.rs')
| -rw-r--r-- | library/std/src/os/windows/io/raw.rs | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/library/std/src/os/windows/io/raw.rs b/library/std/src/os/windows/io/raw.rs index 4ba07e3d2af..6658248d574 100644 --- a/library/std/src/os/windows/io/raw.rs +++ b/library/std/src/os/windows/io/raw.rs @@ -85,6 +85,7 @@ pub trait IntoRawHandle { /// However, transferring ownership is not strictly required. Use a /// `Into<OwnedHandle>::into` implementation for an API which strictly /// transfers ownership. + #[must_use = "losing the raw handle may leak resources"] #[stable(feature = "into_raw_os", since = "1.4.0")] fn into_raw_handle(self) -> RawHandle; } @@ -228,6 +229,7 @@ pub trait IntoRawSocket { /// However, transferring ownership is not strictly required. Use a /// `Into<OwnedSocket>::into` implementation for an API which strictly /// transfers ownership. + #[must_use = "losing the raw socket may leak resources"] #[stable(feature = "into_raw_os", since = "1.4.0")] fn into_raw_socket(self) -> RawSocket; } |
