mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-01 15:01:51 +00:00
Add #[must_use] to non-mutating verb methods
This commit is contained in:
parent
5b210643eb
commit
c3f0577002
@ -2229,6 +2229,8 @@ impl<T: ?Sized> Weak<T> {
|
||||
///
|
||||
/// assert!(weak_five.upgrade().is_none());
|
||||
/// ```
|
||||
#[must_use = "this returns a new `Rc`, \
|
||||
without modifying the original weak pointer"]
|
||||
#[stable(feature = "rc_weak", since = "1.4.0")]
|
||||
pub fn upgrade(&self) -> Option<Rc<T>> {
|
||||
let inner = self.inner()?;
|
||||
|
@ -146,7 +146,7 @@ macro_rules! acquire {
|
||||
/// use std::sync::Arc;
|
||||
///
|
||||
/// let my_arc = Arc::new(());
|
||||
/// Arc::downgrade(&my_arc);
|
||||
/// let my_weak = Arc::downgrade(&my_arc);
|
||||
/// ```
|
||||
///
|
||||
/// `Arc<T>`'s implementations of traits like `Clone` may also be called using
|
||||
@ -897,6 +897,8 @@ impl<T: ?Sized> Arc<T> {
|
||||
///
|
||||
/// let weak_five = Arc::downgrade(&five);
|
||||
/// ```
|
||||
#[must_use = "this returns a new `Weak` pointer, \
|
||||
without modifying the original `Arc`"]
|
||||
#[stable(feature = "arc_weak", since = "1.4.0")]
|
||||
pub fn downgrade(this: &Self) -> Weak<T> {
|
||||
// This Relaxed is OK because we're checking the value in the CAS
|
||||
@ -1861,6 +1863,8 @@ impl<T: ?Sized> Weak<T> {
|
||||
///
|
||||
/// assert!(weak_five.upgrade().is_none());
|
||||
/// ```
|
||||
#[must_use = "this returns a new `Arc`, \
|
||||
without modifying the original weak pointer"]
|
||||
#[stable(feature = "arc_weak", since = "1.4.0")]
|
||||
pub fn upgrade(&self) -> Option<Arc<T>> {
|
||||
// We use a CAS loop to increment the strong count instead of a
|
||||
|
@ -112,6 +112,8 @@ impl Layout {
|
||||
/// The minimum byte alignment for a memory block of this layout.
|
||||
#[stable(feature = "alloc_layout", since = "1.28.0")]
|
||||
#[rustc_const_stable(feature = "const_alloc_layout", since = "1.50.0")]
|
||||
#[must_use = "this returns the minimum alignment, \
|
||||
without modifying the layout"]
|
||||
#[inline]
|
||||
pub const fn align(&self) -> usize {
|
||||
self.align_.get()
|
||||
@ -229,6 +231,8 @@ impl Layout {
|
||||
/// satisfy this constraint is to ensure `align <= self.align()`.
|
||||
#[unstable(feature = "alloc_layout_extra", issue = "55724")]
|
||||
#[rustc_const_unstable(feature = "const_alloc_layout", issue = "67521")]
|
||||
#[must_use = "this returns the padding needed, \
|
||||
without modifying the `Layout`"]
|
||||
#[inline]
|
||||
pub const fn padding_needed_for(&self, align: usize) -> usize {
|
||||
let len = self.size();
|
||||
@ -262,6 +266,8 @@ impl Layout {
|
||||
/// This is equivalent to adding the result of `padding_needed_for`
|
||||
/// to the layout's current size.
|
||||
#[stable(feature = "alloc_layout_manipulation", since = "1.44.0")]
|
||||
#[must_use = "this returns a new `Layout`, \
|
||||
without modifying the original"]
|
||||
#[inline]
|
||||
pub fn pad_to_align(&self) -> Layout {
|
||||
let pad = self.padding_needed_for(self.align());
|
||||
|
@ -2511,6 +2511,8 @@ impl Path {
|
||||
/// println!("{}", path.display());
|
||||
/// ```
|
||||
#[stable(feature = "rust1", since = "1.0.0")]
|
||||
#[must_use = "this does not display the path, \
|
||||
it returns an object that can be displayed"]
|
||||
#[inline]
|
||||
pub fn display(&self) -> Display<'_> {
|
||||
Display { path: self }
|
||||
|
Loading…
Reference in New Issue
Block a user