Skip to content

Commit

Permalink
Auto merge of #114689 - m-ou-se:stabilize-thread-local-cell-methods, …
Browse files Browse the repository at this point in the history
…r=thomcc

Stabilize thread local cell methods.

Closes #92122.
  • Loading branch information
bors committed Aug 16, 2023
2 parents b531630 + dc3cbc1 commit 656ee47
Show file tree
Hide file tree
Showing 5 changed files with 9 additions and 22 deletions.
1 change: 0 additions & 1 deletion compiler/rustc_middle/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,6 @@
#![feature(if_let_guard)]
#![feature(inline_const)]
#![feature(iter_from_generator)]
#![feature(local_key_cell_methods)]
#![feature(negative_impls)]
#![feature(never_type)]
#![feature(extern_types)]
Expand Down
1 change: 0 additions & 1 deletion compiler/rustc_smir/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@
test(attr(allow(unused_variables), deny(warnings)))
)]
#![cfg_attr(not(feature = "default"), feature(rustc_private))]
#![feature(local_key_cell_methods)]
#![feature(ptr_metadata)]
#![feature(type_alias_impl_trait)] // Used to define opaque types.
#![feature(intra_doc_pointers)]
Expand Down
1 change: 0 additions & 1 deletion library/proc_macro/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,6 @@
#![feature(staged_api)]
#![feature(allow_internal_unstable)]
#![feature(decl_macro)]
#![feature(local_key_cell_methods)]
#![feature(maybe_uninit_write_slice)]
#![feature(negative_impls)]
#![feature(new_uninit)]
Expand Down
27 changes: 9 additions & 18 deletions library/std/src/thread/local.rs
Original file line number Diff line number Diff line change
Expand Up @@ -313,7 +313,6 @@ impl<T: 'static> LocalKey<Cell<T>> {
/// # Examples
///
/// ```
/// #![feature(local_key_cell_methods)]
/// use std::cell::Cell;
///
/// thread_local! {
Expand All @@ -326,7 +325,7 @@ impl<T: 'static> LocalKey<Cell<T>> {
///
/// assert_eq!(X.get(), 123);
/// ```
#[unstable(feature = "local_key_cell_methods", issue = "92122")]
#[stable(feature = "local_key_cell_methods", since = "CURRENT_RUSTC_VERSION")]
pub fn set(&'static self, value: T) {
self.initialize_with(Cell::new(value), |value, cell| {
if let Some(value) = value {
Expand All @@ -351,7 +350,6 @@ impl<T: 'static> LocalKey<Cell<T>> {
/// # Examples
///
/// ```
/// #![feature(local_key_cell_methods)]
/// use std::cell::Cell;
///
/// thread_local! {
Expand All @@ -360,7 +358,7 @@ impl<T: 'static> LocalKey<Cell<T>> {
///
/// assert_eq!(X.get(), 1);
/// ```
#[unstable(feature = "local_key_cell_methods", issue = "92122")]
#[stable(feature = "local_key_cell_methods", since = "CURRENT_RUSTC_VERSION")]
pub fn get(&'static self) -> T
where
T: Copy,
Expand All @@ -381,7 +379,6 @@ impl<T: 'static> LocalKey<Cell<T>> {
/// # Examples
///
/// ```
/// #![feature(local_key_cell_methods)]
/// use std::cell::Cell;
///
/// thread_local! {
Expand All @@ -391,7 +388,7 @@ impl<T: 'static> LocalKey<Cell<T>> {
/// assert_eq!(X.take(), Some(1));
/// assert_eq!(X.take(), None);
/// ```
#[unstable(feature = "local_key_cell_methods", issue = "92122")]
#[stable(feature = "local_key_cell_methods", since = "CURRENT_RUSTC_VERSION")]
pub fn take(&'static self) -> T
where
T: Default,
Expand All @@ -412,7 +409,6 @@ impl<T: 'static> LocalKey<Cell<T>> {
/// # Examples
///
/// ```
/// #![feature(local_key_cell_methods)]
/// use std::cell::Cell;
///
/// thread_local! {
Expand All @@ -422,7 +418,7 @@ impl<T: 'static> LocalKey<Cell<T>> {
/// assert_eq!(X.replace(2), 1);
/// assert_eq!(X.replace(3), 2);
/// ```
#[unstable(feature = "local_key_cell_methods", issue = "92122")]
#[stable(feature = "local_key_cell_methods", since = "CURRENT_RUSTC_VERSION")]
pub fn replace(&'static self, value: T) -> T {
self.with(|cell| cell.replace(value))
}
Expand All @@ -444,7 +440,6 @@ impl<T: 'static> LocalKey<RefCell<T>> {
/// # Example
///
/// ```
/// #![feature(local_key_cell_methods)]
/// use std::cell::RefCell;
///
/// thread_local! {
Expand All @@ -453,7 +448,7 @@ impl<T: 'static> LocalKey<RefCell<T>> {
///
/// X.with_borrow(|v| assert!(v.is_empty()));
/// ```
#[unstable(feature = "local_key_cell_methods", issue = "92122")]
#[stable(feature = "local_key_cell_methods", since = "CURRENT_RUSTC_VERSION")]
pub fn with_borrow<F, R>(&'static self, f: F) -> R
where
F: FnOnce(&T) -> R,
Expand All @@ -476,7 +471,6 @@ impl<T: 'static> LocalKey<RefCell<T>> {
/// # Example
///
/// ```
/// #![feature(local_key_cell_methods)]
/// use std::cell::RefCell;
///
/// thread_local! {
Expand All @@ -487,7 +481,7 @@ impl<T: 'static> LocalKey<RefCell<T>> {
///
/// X.with_borrow(|v| assert_eq!(*v, vec![1]));
/// ```
#[unstable(feature = "local_key_cell_methods", issue = "92122")]
#[stable(feature = "local_key_cell_methods", since = "CURRENT_RUSTC_VERSION")]
pub fn with_borrow_mut<F, R>(&'static self, f: F) -> R
where
F: FnOnce(&mut T) -> R,
Expand All @@ -511,7 +505,6 @@ impl<T: 'static> LocalKey<RefCell<T>> {
/// # Examples
///
/// ```
/// #![feature(local_key_cell_methods)]
/// use std::cell::RefCell;
///
/// thread_local! {
Expand All @@ -524,7 +517,7 @@ impl<T: 'static> LocalKey<RefCell<T>> {
///
/// X.with_borrow(|v| assert_eq!(*v, vec![1, 2, 3]));
/// ```
#[unstable(feature = "local_key_cell_methods", issue = "92122")]
#[stable(feature = "local_key_cell_methods", since = "CURRENT_RUSTC_VERSION")]
pub fn set(&'static self, value: T) {
self.initialize_with(RefCell::new(value), |value, cell| {
if let Some(value) = value {
Expand All @@ -551,7 +544,6 @@ impl<T: 'static> LocalKey<RefCell<T>> {
/// # Examples
///
/// ```
/// #![feature(local_key_cell_methods)]
/// use std::cell::RefCell;
///
/// thread_local! {
Expand All @@ -566,7 +558,7 @@ impl<T: 'static> LocalKey<RefCell<T>> {
///
/// X.with_borrow(|v| assert!(v.is_empty()));
/// ```
#[unstable(feature = "local_key_cell_methods", issue = "92122")]
#[stable(feature = "local_key_cell_methods", since = "CURRENT_RUSTC_VERSION")]
pub fn take(&'static self) -> T
where
T: Default,
Expand All @@ -586,7 +578,6 @@ impl<T: 'static> LocalKey<RefCell<T>> {
/// # Examples
///
/// ```
/// #![feature(local_key_cell_methods)]
/// use std::cell::RefCell;
///
/// thread_local! {
Expand All @@ -598,7 +589,7 @@ impl<T: 'static> LocalKey<RefCell<T>> {
///
/// X.with_borrow(|v| assert_eq!(*v, vec![1, 2, 3]));
/// ```
#[unstable(feature = "local_key_cell_methods", issue = "92122")]
#[stable(feature = "local_key_cell_methods", since = "CURRENT_RUSTC_VERSION")]
pub fn replace(&'static self, value: T) -> T {
self.with(|cell| cell.replace(value))
}
Expand Down
1 change: 0 additions & 1 deletion src/tools/miri/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@
#![feature(variant_count)]
#![feature(yeet_expr)]
#![feature(nonzero_ops)]
#![feature(local_key_cell_methods)]
#![feature(round_ties_even)]
#![feature(os_str_bytes)]
#![feature(lint_reasons)]
Expand Down

0 comments on commit 656ee47

Please sign in to comment.