Skip to content

Commit

Permalink
add #[must_use] to Box::from_raw
Browse files Browse the repository at this point in the history
  • Loading branch information
rhysd committed Jul 15, 2022
1 parent 30243dd commit fa3156e
Show file tree
Hide file tree
Showing 3 changed files with 27 additions and 0 deletions.
1 change: 1 addition & 0 deletions library/alloc/src/boxed.rs
Original file line number Diff line number Diff line change
Expand Up @@ -949,6 +949,7 @@ impl<T: ?Sized> Box<T> {
/// [`Layout`]: crate::Layout
#[stable(feature = "box_raw", since = "1.4.0")]
#[inline]
#[must_use = "call `drop(from_raw(ptr))` if you intend to drop the `Box`"]
pub unsafe fn from_raw(raw: *mut T) -> Self {
unsafe { Self::from_raw_in(raw, Global) }
}
Expand Down
11 changes: 11 additions & 0 deletions src/test/ui/lint/unused/must-use-box-from-raw.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
// #99269

// check-pass

#![warn(unused_must_use)]

unsafe fn free<T>(ptr: *mut T) {
Box::from_raw(ptr); //~ WARNING unused return value
}

fn main() {}
15 changes: 15 additions & 0 deletions src/test/ui/lint/unused/must-use-box-from-raw.stderr
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
warning: unused return value of `Box::<T>::from_raw` that must be used
--> $DIR/must-use-box-from-raw.rs:8:5
|
LL | Box::from_raw(ptr);
| ^^^^^^^^^^^^^^^^^^^
|
note: the lint level is defined here
--> $DIR/must-use-box-from-raw.rs:5:9
|
LL | #![warn(unused_must_use)]
| ^^^^^^^^^^^^^^^
= note: call `drop(from_raw(ptr))` if you intend to drop the `Box`

warning: 1 warning emitted

0 comments on commit fa3156e

Please sign in to comment.