diff options
| author | Alex Crichton <alex@alexcrichton.com> | 2013-07-12 01:38:44 -0700 |
|---|---|---|
| committer | Alex Crichton <alex@alexcrichton.com> | 2013-07-14 09:29:12 -0700 |
| commit | e3211fa1f1f24268b91b0c89cb312e70499d41f3 (patch) | |
| tree | adcfe3900f33641ac4c73bff3e61f048d7270157 /src/libsyntax/parse | |
| parent | 242606c79339e2d2e3cf15cc8f02bd6ebc0b8c44 (diff) | |
| download | rust-e3211fa1f1f24268b91b0c89cb312e70499d41f3.tar.gz rust-e3211fa1f1f24268b91b0c89cb312e70499d41f3.zip | |
Purge the last remnants of the old TLS api
Closes #3273
Diffstat (limited to 'src/libsyntax/parse')
| -rw-r--r-- | src/libsyntax/parse/token.rs | 23 |
1 files changed, 10 insertions, 13 deletions
diff --git a/src/libsyntax/parse/token.rs b/src/libsyntax/parse/token.rs index 46e0ef32321..8737e571399 100644 --- a/src/libsyntax/parse/token.rs +++ b/src/libsyntax/parse/token.rs @@ -15,7 +15,6 @@ use parse::token; use util::interner::StrInterner; use util::interner; -use std::cast; use std::cmp::Equiv; use std::local_data; use std::rand; @@ -485,18 +484,16 @@ fn mk_fresh_ident_interner() -> @ident_interner { // if an interner exists in TLS, return it. Otherwise, prepare a // fresh one. pub fn get_ident_interner() -> @ident_interner { - unsafe { - let key = - (cast::transmute::<(uint, uint), - &fn:Copy(v: @@::parse::token::ident_interner)>( - (-3 as uint, 0u))); - match local_data::get(key, |k| k.map(|&k| *k)) { - Some(interner) => *interner, - None => { - let interner = mk_fresh_ident_interner(); - local_data::set(key, @interner); - interner - } + #[cfg(not(stage0))] + static key: local_data::Key<@@::parse::token::ident_interner> = &[]; + #[cfg(stage0)] + fn key(_: @@::parse::token::ident_interner) {} + match local_data::get(key, |k| k.map(|&k| *k)) { + Some(interner) => *interner, + None => { + let interner = mk_fresh_ident_interner(); + local_data::set(key, @interner); + interner } } } |
