diff options
Diffstat (limited to 'src/test/ui/borrowck/issue-47215-ice-from-drop-elab.rs')
-rw-r--r-- | src/test/ui/borrowck/issue-47215-ice-from-drop-elab.rs | 20 |
1 files changed, 0 insertions, 20 deletions
diff --git a/src/test/ui/borrowck/issue-47215-ice-from-drop-elab.rs b/src/test/ui/borrowck/issue-47215-ice-from-drop-elab.rs deleted file mode 100644 index e95a6b7c8..000000000 --- a/src/test/ui/borrowck/issue-47215-ice-from-drop-elab.rs +++ /dev/null @@ -1,20 +0,0 @@ -// rust-lang/rust#47215: at one time, the compiler categorized -// thread-local statics as a temporary rvalue, as a way to enforce -// that they are only valid for a given lifetime. -// -// The problem with this is that you cannot move out of static items, -// but you *can* move temporary rvalues. I.e., the categorization -// above only solves half of the problem presented by thread-local -// statics. - -#![feature(thread_local)] - -#[thread_local] -static mut X: ::std::sync::atomic::AtomicUsize = ::std::sync::atomic::AtomicUsize::new(0); - -fn main() { - unsafe { - let mut x = X; //~ ERROR cannot move out of static item `X` [E0507] - let _y = x.get_mut(); - } -} |