diff options
| author | the8472 <the8472@users.noreply.github.com> | 2021-10-12 14:53:10 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-10-12 14:53:10 +0200 |
| commit | a1bdd48106cdb3f9888a564aaa6aa0daef843d64 (patch) | |
| tree | 14619a3abc63f02560b824c03ec68f466cc78bd6 /library/alloc/src | |
| parent | 4ce1ce1f7672c52ce32cd429bb21a12653e2b605 (diff) | |
| parent | c3f0577002b5c158c63dab92476d94af954086f1 (diff) | |
| download | rust-a1bdd48106cdb3f9888a564aaa6aa0daef843d64.tar.gz rust-a1bdd48106cdb3f9888a564aaa6aa0daef843d64.zip | |
Rollup merge of #89796 - jkugelman:must-use-non-mutating-verb-methods, r=joshtriplett
Add #[must_use] to non-mutating verb methods These are methods that could be misconstrued to mutate their input, similar to #89694. I gave each one a different custom message. I wrote that `upgrade` and `downgrade` don't modify the input pointers. Logically they don't, but technically they do... Parent issue: #89692 r? ```@joshtriplett```
Diffstat (limited to 'library/alloc/src')
| -rw-r--r-- | library/alloc/src/rc.rs | 2 | ||||
| -rw-r--r-- | library/alloc/src/sync.rs | 6 |
2 files changed, 7 insertions, 1 deletions
diff --git a/library/alloc/src/rc.rs b/library/alloc/src/rc.rs index eba75d4dd69..493cf3117ed 100644 --- a/library/alloc/src/rc.rs +++ b/library/alloc/src/rc.rs @@ -2230,6 +2230,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()?; diff --git a/library/alloc/src/sync.rs b/library/alloc/src/sync.rs index 730e65db24f..b75e9a2f3c7 100644 --- a/library/alloc/src/sync.rs +++ b/library/alloc/src/sync.rs @@ -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 @@ -898,6 +898,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 @@ -1863,6 +1865,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 |
