1
Fork 0

Rollup merge of #57107 - mjbshaw:thread_local_test, r=nikomatsakis

Add a regression test for mutating a non-mut #[thread_local]

This should close #54901 since the regression has since been fixed.
This commit is contained in:
Mazdak Farrokhzad 2019-01-18 22:56:34 +01:00 committed by GitHub
commit b9cb5db5e8
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 36 additions and 0 deletions

View file

@ -0,0 +1,9 @@
error[E0594]: cannot assign to immutable static item `S`
--> $DIR/thread-local-mutation.rs:11:5
|
LL | S = "after"; //~ ERROR cannot assign to immutable
| ^^^^^^^^^^^ cannot assign
error: aborting due to previous error
For more information about this error, try `rustc --explain E0594`.

View file

@ -0,0 +1,18 @@
// Regression test for #54901: immutable thread locals could be mutated. See:
// https://github.com/rust-lang/rust/issues/29594#issuecomment-328177697
// https://github.com/rust-lang/rust/issues/54901
#![feature(thread_local)]
#[thread_local]
static S: &str = "before";
fn set_s() {
S = "after"; //~ ERROR cannot assign to immutable
}
fn main() {
println!("{}", S);
set_s();
println!("{}", S);
}

View file

@ -0,0 +1,9 @@
error[E0594]: cannot assign to immutable thread-local static item
--> $DIR/thread-local-mutation.rs:11:5
|
LL | S = "after"; //~ ERROR cannot assign to immutable
| ^^^^^^^^^^^
error: aborting due to previous error
For more information about this error, try `rustc --explain E0594`.