Skip to content

Commit 1537056

Browse files
committed
just use TLS interner
1 parent 22d21ab commit 1537056

19 files changed

+84
-75
lines changed

src/libsyntax/ast.rs

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -81,15 +81,13 @@ pub type Mrk = uint;
8181

8282
impl<S:Encoder> Encodable<S> for ident {
8383
fn encode(&self, s: &mut S) {
84-
let intr = get_ident_interner();
85-
s.emit_str(*(*intr).get(*self));
84+
s.emit_str(*get_ident_interner().get(*self));
8685
}
8786
}
8887

8988
impl<D:Decoder> Decodable<D> for ident {
9089
fn decode(d: &mut D) -> ident {
91-
let intr = get_ident_interner();
92-
(*intr).intern(d.read_str())
90+
get_ident_interner().intern(d.read_str())
9391
}
9492
}
9593

src/libsyntax/ext/base.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ use diagnostic::span_handler;
1919
use ext;
2020
use parse;
2121
use parse::token;
22-
use parse::token::{intern};
22+
use parse::token::{intern, get_ident_interner};
2323

2424
use core::hashmap::HashMap;
2525
use core::vec;
@@ -310,10 +310,10 @@ impl ExtCtxt {
310310
*self.trace_mac = x
311311
}
312312
pub fn str_of(&self, id: ast::ident) -> ~str {
313-
copy *self.parse_sess.interner.get(id)
313+
copy *get_ident_interner().get(id)
314314
}
315315
pub fn ident_of(&self, st: &str) -> ast::ident {
316-
self.parse_sess.interner.intern(st)
316+
get_ident_interner().intern(st)
317317
}
318318
}
319319

src/libsyntax/ext/concat_idents.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ use codemap::span;
1515
use ext::base::*;
1616
use ext::base;
1717
use parse::token;
18+
use parse::token::{get_ident_interner};
1819

1920
pub fn expand_syntax_ext(cx: @ExtCtxt, sp: span, tts: &[ast::token_tree])
2021
-> base::MacResult {
@@ -33,7 +34,7 @@ pub fn expand_syntax_ext(cx: @ExtCtxt, sp: span, tts: &[ast::token_tree])
3334
}
3435
}
3536
}
36-
let res = cx.parse_sess().interner.intern(res_str);
37+
let res = get_ident_interner().intern(res_str);
3738

3839
let e = @ast::expr {
3940
id: cx.next_id(),

src/libsyntax/ext/expand.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -735,6 +735,7 @@ mod test {
735735
use codemap;
736736
use codemap::spanned;
737737
use parse;
738+
use parse::token::{get_ident_interner};
738739
use core::io;
739740
use core::option::{None, Some};
740741
use util::parser_testing::{string_to_item_and_sess};

src/libsyntax/ext/fmt.rs

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ use ext::build::AstBuilder;
2525
use core::option;
2626
use core::unstable::extfmt::ct::*;
2727
use core::vec;
28+
use parse::token::{get_ident_interner};
2829

2930
pub fn expand_syntax_ext(cx: @ExtCtxt, sp: span, tts: &[ast::token_tree])
3031
-> base::MacResult {
@@ -53,7 +54,7 @@ fn pieces_to_expr(cx: @ExtCtxt, sp: span,
5354
pieces: ~[Piece], args: ~[@ast::expr])
5455
-> @ast::expr {
5556
fn make_path_vec(cx: @ExtCtxt, ident: &str) -> ~[ast::ident] {
56-
let intr = cx.parse_sess().interner;
57+
let intr = get_ident_interner();
5758
return ~[intr.intern("std"),
5859
intr.intern("unstable"),
5960
intr.intern("extfmt"),
@@ -112,7 +113,7 @@ fn pieces_to_expr(cx: @ExtCtxt, sp: span,
112113
fn make_conv_struct(cx: @ExtCtxt, sp: span, flags_expr: @ast::expr,
113114
width_expr: @ast::expr, precision_expr: @ast::expr,
114115
ty_expr: @ast::expr) -> @ast::expr {
115-
let intr = cx.parse_sess().interner;
116+
let intr = get_ident_interner();
116117
cx.expr_struct(
117118
sp,
118119
cx.path_global(sp, make_path_vec(cx, "Conv")),
@@ -255,11 +256,11 @@ fn pieces_to_expr(cx: @ExtCtxt, sp: span,
255256
let nargs = args.len();
256257

257258
/* 'ident' is the local buffer building up the result of fmt! */
258-
let ident = cx.parse_sess().interner.intern("__fmtbuf");
259+
let ident = get_ident_interner().intern("__fmtbuf");
259260
let buf = || cx.expr_ident(fmt_sp, ident);
260-
let core_ident = cx.parse_sess().interner.intern("std");
261-
let str_ident = cx.parse_sess().interner.intern("str");
262-
let push_ident = cx.parse_sess().interner.intern("push_str");
261+
let core_ident = get_ident_interner().intern("std");
262+
let str_ident = get_ident_interner().intern("str");
263+
let push_ident = get_ident_interner().intern("push_str");
263264
let mut stms = ~[];
264265

265266
/* Translate each piece (portion of the fmt expression) by invoking the

src/libsyntax/ext/log_syntax.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ use codemap;
1515
use ext::base::*;
1616
use ext::base;
1717
use print;
18+
use parse::token::{get_ident_interner};
1819

1920
use core::io;
2021
use core::vec;
@@ -28,7 +29,7 @@ pub fn expand_syntax_ext(cx: @ExtCtxt,
2829
io::stdout().write_line(
2930
print::pprust::tt_to_str(
3031
ast::tt_delim(vec::to_owned(tt)),
31-
cx.parse_sess().interner));
32+
get_ident_interner()));
3233

3334
//trivial expression
3435
MRExpr(@ast::expr {

src/libsyntax/ext/pipes/mod.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ use ext::pipes::pipec::gen_init;
5252
use ext::pipes::proto::visit;
5353
use parse::lexer::{new_tt_reader, reader};
5454
use parse::parser::Parser;
55-
55+
use parse::token::{get_ident_interner};
5656
use core::option::None;
5757

5858
pub mod ast_builder;
@@ -68,7 +68,7 @@ pub fn expand_proto(cx: @ExtCtxt, _sp: span, id: ast::ident,
6868
let sess = cx.parse_sess();
6969
let cfg = cx.cfg();
7070
let tt_rdr = new_tt_reader(copy cx.parse_sess().span_diagnostic,
71-
cx.parse_sess().interner,
71+
get_ident_interner(),
7272
None,
7373
copy tt);
7474
let rdr = tt_rdr as @reader;

src/libsyntax/ext/pipes/parse_proto.rs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ use ext::pipes::proto::*;
1717
use parse::common::SeqSep;
1818
use parse::parser;
1919
use parse::token;
20+
use parse::token::{get_ident_interner};
2021

2122
pub trait proto_parser {
2223
fn parse_proto(&self, id: ~str) -> protocol;
@@ -42,11 +43,11 @@ impl proto_parser for parser::Parser {
4243

4344
fn parse_state(&self, proto: protocol) {
4445
let id = self.parse_ident();
45-
let name = copy *self.interner.get(id);
46+
let name = copy *get_ident_interner().get(id);
4647

4748
self.expect(&token::COLON);
4849
let dir = match copy *self.token {
49-
token::IDENT(n, _) => self.interner.get(n),
50+
token::IDENT(n, _) => get_ident_interner().get(n),
5051
_ => fail!()
5152
};
5253
self.bump();
@@ -77,7 +78,7 @@ impl proto_parser for parser::Parser {
7778
}
7879

7980
fn parse_message(&self, state: state) {
80-
let mname = copy *self.interner.get(self.parse_ident());
81+
let mname = copy *get_ident_interner().get(self.parse_ident());
8182

8283
let args = if *self.token == token::LPAREN {
8384
self.parse_unspanned_seq(
@@ -96,7 +97,7 @@ impl proto_parser for parser::Parser {
9697

9798
let next = match *self.token {
9899
token::IDENT(_, _) => {
99-
let name = copy *self.interner.get(self.parse_ident());
100+
let name = copy *get_ident_interner().get(self.parse_ident());
100101
let ntys = if *self.token == token::LT {
101102
self.parse_unspanned_seq(
102103
&token::LT,

src/libsyntax/ext/quote.rs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -80,13 +80,13 @@ pub mod rt {
8080

8181
impl ToSource for ast::ident {
8282
fn to_source(&self, cx: @ExtCtxt) -> ~str {
83-
copy *cx.parse_sess().interner.get(*self)
83+
copy *get_ident_interner().get(*self)
8484
}
8585
}
8686

8787
impl ToSource for @ast::item {
8888
fn to_source(&self, cx: @ExtCtxt) -> ~str {
89-
item_to_str(*self, cx.parse_sess().interner)
89+
item_to_str(*self, get_ident_interner())
9090
}
9191
}
9292

@@ -98,7 +98,7 @@ pub mod rt {
9898

9999
impl ToSource for @ast::Ty {
100100
fn to_source(&self, cx: @ExtCtxt) -> ~str {
101-
ty_to_str(*self, cx.parse_sess().interner)
101+
ty_to_str(*self, get_ident_interner())
102102
}
103103
}
104104

@@ -110,19 +110,19 @@ pub mod rt {
110110

111111
impl ToSource for Generics {
112112
fn to_source(&self, cx: @ExtCtxt) -> ~str {
113-
pprust::generics_to_str(self, cx.parse_sess().interner)
113+
pprust::generics_to_str(self, get_ident_interner())
114114
}
115115
}
116116

117117
impl ToSource for @ast::expr {
118118
fn to_source(&self, cx: @ExtCtxt) -> ~str {
119-
pprust::expr_to_str(*self, cx.parse_sess().interner)
119+
pprust::expr_to_str(*self, get_ident_interner())
120120
}
121121
}
122122

123123
impl ToSource for ast::blk {
124124
fn to_source(&self, cx: @ExtCtxt) -> ~str {
125-
pprust::block_to_str(self, cx.parse_sess().interner)
125+
pprust::block_to_str(self, get_ident_interner())
126126
}
127127
}
128128

@@ -418,11 +418,11 @@ pub fn expand_quote_stmt(cx: @ExtCtxt,
418418
}
419419

420420
fn ids_ext(cx: @ExtCtxt, strs: ~[~str]) -> ~[ast::ident] {
421-
strs.map(|str| cx.parse_sess().interner.intern(*str))
421+
strs.map(|str| get_ident_interner().intern(*str))
422422
}
423423

424424
fn id_ext(cx: @ExtCtxt, str: &str) -> ast::ident {
425-
cx.parse_sess().interner.intern(str)
425+
get_ident_interner().intern(str)
426426
}
427427

428428
// Lift an ident to the expr that evaluates to that ident.

src/libsyntax/ext/source_util.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ use ext::base::*;
1818
use ext::base;
1919
use ext::build::AstBuilder;
2020
use parse;
21+
use parse::token::{get_ident_interner};
2122
use print::pprust;
2223

2324
use core::io;
@@ -65,7 +66,7 @@ pub fn expand_file(cx: @ExtCtxt, sp: span, tts: &[ast::token_tree])
6566

6667
pub fn expand_stringify(cx: @ExtCtxt, sp: span, tts: &[ast::token_tree])
6768
-> base::MacResult {
68-
let s = pprust::tts_to_str(tts, cx.parse_sess().interner);
69+
let s = pprust::tts_to_str(tts, get_ident_interner());
6970
base::MRExpr(cx.expr_str(sp, s))
7071
}
7172

src/libsyntax/ext/trace_macros.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ use ext::base;
1717
use parse::lexer::{new_tt_reader, reader};
1818
use parse::parser::Parser;
1919
use parse::token::keywords;
20+
use parse::token::{get_ident_interner};
2021

2122
use core::vec;
2223

@@ -28,7 +29,7 @@ pub fn expand_trace_macros(cx: @ExtCtxt,
2829
let cfg = cx.cfg();
2930
let tt_rdr = new_tt_reader(
3031
copy cx.parse_sess().span_diagnostic,
31-
cx.parse_sess().interner,
32+
get_ident_interner(),
3233
None,
3334
vec::to_owned(tt)
3435
);

src/libsyntax/ext/tt/macro_parser.rs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ use codemap;
1919
use parse::lexer::*; //resolve bug?
2020
use parse::ParseSess;
2121
use parse::parser::Parser;
22-
use parse::token::{Token, EOF, to_str, nonterminal};
22+
use parse::token::{Token, EOF, to_str, nonterminal, get_ident_interner};
2323
use parse::token;
2424

2525
use core::hashmap::HashMap;
@@ -205,7 +205,7 @@ pub fn nameize(p_s: @mut ParseSess, ms: &[matcher], res: &[@named_match])
205205
} => {
206206
if ret_val.contains_key(&bind_name) {
207207
p_s.span_diagnostic.span_fatal(sp, ~"Duplicated bind name: "+
208-
*p_s.interner.get(bind_name))
208+
*get_ident_interner().get(bind_name))
209209
}
210210
ret_val.insert(bind_name, res[idx]);
211211
}
@@ -373,8 +373,8 @@ pub fn parse(
373373
let nts = str::connect(vec::map(bb_eis, |ei| {
374374
match ei.elts[ei.idx].node {
375375
match_nonterminal(bind,name,_) => {
376-
fmt!("%s ('%s')", *sess.interner.get(name),
377-
*sess.interner.get(bind))
376+
fmt!("%s ('%s')", *get_ident_interner().get(name),
377+
*get_ident_interner().get(bind))
378378
}
379379
_ => fail!()
380380
} }), " or ");
@@ -384,7 +384,7 @@ pub fn parse(
384384
nts, next_eis.len()));
385385
} else if (bb_eis.len() == 0u && next_eis.len() == 0u) {
386386
return failure(sp, ~"No rules expected the token: "
387-
+ to_str(rdr.interner(), &tok));
387+
+ to_str(get_ident_interner(), &tok));
388388
} else if (next_eis.len() > 0u) {
389389
/* Now process the next token */
390390
while(next_eis.len() > 0u) {
@@ -398,7 +398,7 @@ pub fn parse(
398398
match ei.elts[ei.idx].node {
399399
match_nonterminal(_, name, idx) => {
400400
ei.matches[idx].push(@matched_nonterminal(
401-
parse_nt(&rust_parser, *sess.interner.get(name))));
401+
parse_nt(&rust_parser, *get_ident_interner().get(name))));
402402
ei.idx += 1u;
403403
}
404404
_ => fail!()
@@ -430,7 +430,7 @@ pub fn parse_nt(p: &Parser, name: &str) -> nonterminal {
430430
"ident" => match *p.token {
431431
token::IDENT(sn,b) => { p.bump(); token::nt_ident(sn,b) }
432432
_ => p.fatal(~"expected ident, found "
433-
+ token::to_str(p.reader.interner(), &copy *p.token))
433+
+ token::to_str(get_ident_interner(), &copy *p.token))
434434
},
435435
"path" => token::nt_path(p.parse_path_with_tps(false)),
436436
"tt" => {

src/libsyntax/ext/tt/macro_rules.rs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ use ext::tt::macro_parser::{named_match, matched_seq, matched_nonterminal};
2121
use ext::tt::macro_parser::{parse, parse_or_else, success, failure};
2222
use parse::lexer::{new_tt_reader, reader};
2323
use parse::parser::Parser;
24-
use parse::token::special_idents;
24+
use parse::token::{get_ident_interner, special_idents};
2525
use parse::token::{FAT_ARROW, SEMI, nt_matchers, nt_tt};
2626
use print;
2727

@@ -38,8 +38,8 @@ pub fn add_new_extension(cx: @ExtCtxt,
3838
spanned { node: copy m, span: dummy_sp() }
3939
}
4040

41-
let lhs_nm = cx.parse_sess().interner.gensym("lhs");
42-
let rhs_nm = cx.parse_sess().interner.gensym("rhs");
41+
let lhs_nm = get_ident_interner().gensym("lhs");
42+
let rhs_nm = get_ident_interner().gensym("rhs");
4343

4444
// The grammar for macro_rules! is:
4545
// $( $lhs:mtcs => $rhs:tt );+
@@ -57,7 +57,7 @@ pub fn add_new_extension(cx: @ExtCtxt,
5757

5858
// Parse the macro_rules! invocation (`none` is for no interpolations):
5959
let arg_reader = new_tt_reader(copy cx.parse_sess().span_diagnostic,
60-
cx.parse_sess().interner, None, copy arg);
60+
get_ident_interner(), None, copy arg);
6161
let argument_map = parse_or_else(cx.parse_sess(),
6262
cx.cfg(),
6363
arg_reader as @reader,
@@ -85,15 +85,15 @@ pub fn add_new_extension(cx: @ExtCtxt,
8585
cx.str_of(name),
8686
print::pprust::tt_to_str(
8787
ast::tt_delim(vec::to_owned(arg)),
88-
cx.parse_sess().interner)));
88+
get_ident_interner())));
8989
}
9090

9191
// Which arm's failure should we report? (the one furthest along)
9292
let mut best_fail_spot = dummy_sp();
9393
let mut best_fail_msg = ~"internal error: ran no matchers";
9494

9595
let s_d = cx.parse_sess().span_diagnostic;
96-
let itr = cx.parse_sess().interner;
96+
let itr = get_ident_interner();
9797

9898
for lhses.eachi |i, lhs| { // try each arm's matchers
9999
match *lhs {
@@ -151,7 +151,7 @@ pub fn add_new_extension(cx: @ExtCtxt,
151151
|cx, sp, arg| generic_extension(cx, sp, name, arg, *lhses, *rhses);
152152

153153
return MRDef(MacroDef{
154-
name: copy *cx.parse_sess().interner.get(name),
154+
name: copy *get_ident_interner().get(name),
155155
ext: NormalTT(base::SyntaxExpanderTT{expander: exp, span: Some(sp)})
156156
});
157157
}

0 commit comments

Comments
 (0)