diff options
| author | Lukas Lueg <lukas.lueg@gmail.com> | 2022-09-03 21:48:17 +0200 |
|---|---|---|
| committer | Lukas Lueg <lukas.lueg@gmail.com> | 2022-09-03 21:48:17 +0200 |
| commit | 2c664bcbfbd31882a4b2a32f8058cc25e378186c (patch) | |
| tree | 74b252042fc8c0ccac6a7cd1dcb8dbfdceffd6b4 | |
| parent | ae0030beb0398cabb2626fe326d6b2e8286c70b9 (diff) | |
| download | rust-2c664bcbfbd31882a4b2a32f8058cc25e378186c.tar.gz rust-2c664bcbfbd31882a4b2a32f8058cc25e378186c.zip | |
Tone down explanation on RefCell::get_mut
| -rw-r--r-- | library/core/src/cell.rs | 21 |
1 files changed, 12 insertions, 9 deletions
diff --git a/library/core/src/cell.rs b/library/core/src/cell.rs index fb4454c94cb..1abbb39497a 100644 --- a/library/core/src/cell.rs +++ b/library/core/src/cell.rs @@ -1021,15 +1021,18 @@ impl<T: ?Sized> RefCell<T> { /// Returns a mutable reference to the underlying data. /// - /// This call borrows `RefCell` mutably (at compile-time) so there is no - /// need for dynamic checks. - /// - /// However be cautious: this method expects `self` to be mutable, which is - /// generally not the case when using a `RefCell`. Take a look at the - /// [`borrow_mut`] method instead if `self` isn't mutable. - /// - /// Also, please be aware that this method is only for special circumstances and is usually - /// not what you want. In case of doubt, use [`borrow_mut`] instead. + /// Since this method borrows `RefCell` mutably, it is statically guaranteed + /// that no borrows to the underlying data exist. The dynamic checks inherent + /// in [`borrow_mut`] and most other methods of `RefCell` are therefor + /// unnecessary. + /// + /// This method can only be called if `RefCell` can be mutably borrowed, + /// which in general is only the case directly after the `RefCell` has + /// been created. In these situations, skipping the aforementioned dynamic + /// borrowing checks may yield better ergonomics and runtime-performance. + /// + /// In most situations where `RefCell` is used, it can't be borrowed mutably. + /// Use [`borrow_mut`] to get mutable access to the underlying data then. /// /// [`borrow_mut`]: RefCell::borrow_mut() /// |
