Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit 1153b5d

Browse files
committedAug 22, 2012
intern identifiers
1 parent 7317bf8 commit 1153b5d

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

94 files changed

+1662
-1464
lines changed
 

‎src/cargo/cargo.rs

Lines changed: 17 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -225,7 +225,7 @@ fn load_link(mis: ~[@ast::meta_item]) -> (option<~str>,
225225
for mis.each |a| {
226226
match a.node {
227227
ast::meta_name_value(v, {node: ast::lit_str(s), span: _}) => {
228-
match *v {
228+
match v {
229229
~"name" => name = some(*s),
230230
~"vers" => vers = some(*s),
231231
~"uuid" => uuid = some(*s),
@@ -252,15 +252,15 @@ fn load_crate(filename: ~str) -> option<crate> {
252252
for c.node.attrs.each |a| {
253253
match a.node.value.node {
254254
ast::meta_name_value(v, {node: ast::lit_str(s), span: _}) => {
255-
match *v {
256-
~"desc" => desc = some(*v),
257-
~"sigs" => sigs = some(*v),
258-
~"crate_type" => crate_type = some(*v),
255+
match v {
256+
~"desc" => desc = some(v),
257+
~"sigs" => sigs = some(v),
258+
~"crate_type" => crate_type = some(v),
259259
_ => { }
260260
}
261261
}
262262
ast::meta_list(v, mis) => {
263-
if *v == ~"link" {
263+
if v == ~"link" {
264264
let (n, v, u) = load_link(mis);
265265
name = n;
266266
vers = v;
@@ -278,13 +278,15 @@ fn load_crate(filename: ~str) -> option<crate> {
278278
mut deps: ~[~str]
279279
};
280280

281-
fn goto_view_item(e: env, i: @ast::view_item) {
281+
fn goto_view_item(ps: syntax::parse::parse_sess, e: env,
282+
i: @ast::view_item) {
282283
match i.node {
283284
ast::view_item_use(ident, metas, id) => {
284285
let name_items =
285286
attr::find_meta_items_by_name(metas, ~"name");
286287
let m = if name_items.is_empty() {
287-
metas + ~[attr::mk_name_value_item_str(@~"name", *ident)]
288+
metas + ~[attr::mk_name_value_item_str(
289+
~"name", *ps.interner.get(ident))]
288290
} else {
289291
metas
290292
};
@@ -297,9 +299,9 @@ fn load_crate(filename: ~str) -> option<crate> {
297299
some(value) => {
298300
let name = attr::get_meta_item_name(item);
299301

300-
match *name {
301-
~"vers" => attr_vers = *value,
302-
~"from" => attr_from = *value,
302+
match name {
303+
~"vers" => attr_vers = value,
304+
~"from" => attr_from = value,
303305
_ => ()
304306
}
305307
}
@@ -311,11 +313,11 @@ fn load_crate(filename: ~str) -> option<crate> {
311313
attr_from
312314
} else {
313315
if !str::is_empty(attr_vers) {
314-
*attr_name + ~"@" + attr_vers
315-
} else { *attr_name }
316+
ps.interner.get(attr_name) + ~"@" + attr_vers
317+
} else { *ps.interner.get(attr_name) }
316318
};
317319

318-
match *attr_name {
320+
match *ps.interner.get(attr_name) {
319321
~"std" | ~"core" => (),
320322
_ => vec::push(e.deps, query)
321323
}
@@ -330,7 +332,7 @@ fn load_crate(filename: ~str) -> option<crate> {
330332
mut deps: ~[]
331333
};
332334
let v = visit::mk_simple_visitor(@{
333-
visit_view_item: |a| goto_view_item(e, a),
335+
visit_view_item: |a| goto_view_item(sess, e, a),
334336
visit_item: |a| goto_item(e, a),
335337
with *visit::default_simple_visitor()
336338
});

‎src/fuzzer/fuzzer.rs

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -238,29 +238,31 @@ fn check_variants_T<T: copy>(
238238
filename: ~str,
239239
thing_label: ~str,
240240
things: ~[T],
241-
stringifier: fn@(@T) -> ~str,
241+
stringifier: fn@(@T, syntax::parse::token::ident_interner) -> ~str,
242242
replacer: fn@(ast::crate, uint, T, test_mode) -> ast::crate,
243243
cx: context
244244
) {
245245
error!{"%s contains %u %s objects", filename,
246246
vec::len(things), thing_label};
247247

248+
// Assuming we're not generating any token_trees
249+
let intr = syntax::parse::token::mk_fake_ident_interner();
250+
248251
let L = vec::len(things);
249252

250253
if L < 100u {
251254
do under(uint::min(L, 20u)) |i| {
252255
log(error, ~"Replacing... #" + uint::str(i));
253256
do under(uint::min(L, 30u)) |j| {
254-
log(error, ~"With... " + stringifier(@things[j]));
257+
log(error, ~"With... " + stringifier(@things[j], intr));
255258
let crate2 = @replacer(crate, i, things[j], cx.mode);
256259
// It would be best to test the *crate* for stability, but
257260
// testing the string for stability is easier and ok for now.
258261
let handler = diagnostic::mk_handler(none);
259262
let str3 =
260263
@as_str(|a|pprust::print_crate(
261264
codemap,
262-
// Assuming we're not generating any token_trees
263-
syntax::parse::token::mk_ident_interner(),
265+
intr,
264266
diagnostic::mk_span_handler(handler, codemap),
265267
crate2,
266268
filename,
@@ -422,7 +424,7 @@ fn parse_and_print(code: @~str) -> ~str {
422424
pprust::print_crate(
423425
sess.cm,
424426
// Assuming there are no token_trees
425-
syntax::parse::token::mk_ident_interner(),
427+
syntax::parse::token::mk_fake_ident_interner(),
426428
sess.span_diagnostic,
427429
crate,
428430
filename,
@@ -570,7 +572,7 @@ fn check_variants(files: ~[~str], cx: context) {
570572
as_str(|a| pprust::print_crate(
571573
sess.cm,
572574
// Assuming no token_trees
573-
syntax::parse::token::mk_ident_interner(),
575+
syntax::parse::token::mk_fake_ident_interner(),
574576
sess.span_diagnostic,
575577
crate,
576578
file,

0 commit comments

Comments
 (0)
Please sign in to comment.