Rollup merge of #91355 - alexcrichton:stabilize-thread-local-const, r=m-ou-se

std: Stabilize the `thread_local_const_init` feature

This commit is intended to follow the stabilization disposition of the
FCP that has now finished in #84223. This stabilizes the ability to flag
thread local initializers as `const` expressions which enables the macro
to generate more efficient code for accessing it, notably removing
runtime checks for initialization.

More information can also be found in #84223 as well as the tests where
the feature usage was removed in this PR.

Closes #84223
This commit is contained in:
Matthias Krüger 2021-12-05 00:38:00 +01:00 committed by GitHub
commit 23012b5200
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
10 changed files with 1 additions and 34 deletions

View file

@ -1,5 +1,4 @@
#![crate_type = "lib"]
#![feature(thread_local_const_init)]
use std::cell::Cell;

View file

@ -6,7 +6,6 @@
// ignore-android does not use #[thread_local]
#![crate_type = "lib"]
#![feature(thread_local_const_init)]
extern crate thread_local_aux as aux;

View file

@ -1,4 +0,0 @@
thread_local!(static X: u32 = const { 0 });
//~^ ERROR: use of unstable library feature 'thread_local_const_init'
fn main() {}

View file

@ -1,13 +0,0 @@
error[E0658]: use of unstable library feature 'thread_local_const_init'
--> $DIR/thread-local-const-init.rs:1:1
|
LL | thread_local!(static X: u32 = const { 0 });
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= note: see issue #84223 <https://github.com/rust-lang/rust/issues/84223> for more information
= help: add `#![feature(thread_local_const_init)]` to the crate attributes to enable
= note: this error originates in the macro `$crate::__thread_local_inner` (in Nightly builds, run with -Z macro-backtrace for more info)
error: aborting due to previous error
For more information about this error, try `rustc --explain E0658`.