Rollup merge of #60850 - SimonSapin:unguarded, r=alexcrichton

Stabilize RefCell::try_borrow_unguarded

Servo has been using this since https://github.com/servo/servo/pull/23196 to add a runtime check to some unsafe code, as discussed in PR https://github.com/rust-lang/rust/pull/59211. Stabilizing would help do more of the same in libraries that also have users on Stable.
This commit is contained in:
Mazdak Farrokhzad 2019-05-30 10:52:51 +02:00 committed by GitHub
commit 74b359373c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 1 additions and 9 deletions

View File

@ -1,7 +0,0 @@
# `borrow_state`
The tracking issue for this feature is: [#27733]
[#27733]: https://github.com/rust-lang/rust/issues/27733
------------------------

View File

@ -967,7 +967,6 @@ impl<T: ?Sized> RefCell<T> {
/// # Examples /// # Examples
/// ///
/// ``` /// ```
/// #![feature(borrow_state)]
/// use std::cell::RefCell; /// use std::cell::RefCell;
/// ///
/// let c = RefCell::new(5); /// let c = RefCell::new(5);
@ -982,7 +981,7 @@ impl<T: ?Sized> RefCell<T> {
/// assert!(unsafe { c.try_borrow_unguarded() }.is_ok()); /// assert!(unsafe { c.try_borrow_unguarded() }.is_ok());
/// } /// }
/// ``` /// ```
#[unstable(feature = "borrow_state", issue = "27733")] #[stable(feature = "borrow_state", since = "1.37.0")]
#[inline] #[inline]
pub unsafe fn try_borrow_unguarded(&self) -> Result<&T, BorrowError> { pub unsafe fn try_borrow_unguarded(&self) -> Result<&T, BorrowError> {
if !is_writing(self.borrow.get()) { if !is_writing(self.borrow.get()) {