Skip to content

Commit

Permalink
Rollup merge of rust-lang#57107 - mjbshaw:thread_local_test, r=nikoma…
Browse files Browse the repository at this point in the history
…tsakis

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

This should close rust-lang#54901 since the regression has since been fixed.
  • Loading branch information
Centril authored Jan 18, 2019
2 parents c76f3c3 + f4ded5b commit b9cb5db
Show file tree
Hide file tree
Showing 3 changed files with 36 additions and 0 deletions.
9 changes: 9 additions & 0 deletions src/test/ui/thread-local-mutation.nll.stderr
Original file line number Diff line number Diff line change
@@ -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`.
18 changes: 18 additions & 0 deletions src/test/ui/thread-local-mutation.rs
Original file line number Diff line number Diff line change
@@ -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);
}
9 changes: 9 additions & 0 deletions src/test/ui/thread-local-mutation.stderr
Original file line number Diff line number Diff line change
@@ -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`.

0 comments on commit b9cb5db

Please sign in to comment.