Skip to content

Commit bb94dec

Browse files
committed
---
yaml --- r: 24514 b: refs/heads/master c: 15d8457 h: refs/heads/master v: v3
1 parent 0c37056 commit bb94dec

File tree

2 files changed

+27
-22
lines changed

2 files changed

+27
-22
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
refs/heads/master: 0aa42bc91e08faac450d1850f3b549b78382ccf4
2+
refs/heads/master: 15d845710405563090004abd4143dc706fa4b63c
33
refs/heads/snap-stage1: e33de59e47c5076a89eadeb38f4934f58a3618a6
44
refs/heads/snap-stage3: cd6f24f9d14ac90d167386a56e7a6ac1f0318195
55
refs/heads/try: ffbe0e0e00374358b789b0037bcb3a577cd218be

trunk/src/libsyntax/parse/token.rs

Lines changed: 26 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -343,28 +343,33 @@ macro_rules! interner_key (
343343
)
344344

345345
fn mk_ident_interner() -> @ident_interner {
346-
/* the indices here must correspond to the numbers in special_idents */
347-
let init_vec = ~[@~"_", @~"anon", @~"drop", @~"", @~"unary", @~"!",
348-
@~"[]", @~"unary-", @~"__extensions__", @~"self",
349-
@~"item", @~"block", @~"stmt", @~"pat", @~"expr",
350-
@~"ty", @~"ident", @~"path", @~"tt", @~"matchers",
351-
@~"str", @~"TyVisitor", @~"arg", @~"descrim",
352-
@~"__rust_abi", @~"__rust_stack_shim", @~"TyDesc",
353-
@~"dtor", @~"main", @~"<opaque>", @~"blk", @~"static",
354-
@~"intrinsic", @~"__foreign_mod__"];
355-
356-
let rv = @ident_interner {
357-
interner: interner::mk_prefill::<@~str>(init_vec)
358-
};
359-
360-
/* having multiple interners will just confuse the serializer */
361346
unsafe {
362-
assert task::local_data::local_data_get(interner_key!()).is_none()
363-
};
364-
unsafe {
365-
task::local_data::local_data_set(interner_key!(), @rv)
366-
};
367-
rv
347+
match task::local_data::local_data_get(interner_key!()) {
348+
Some(interner) => *interner,
349+
None => {
350+
// the indices here must correspond to the numbers in
351+
// special_idents.
352+
let init_vec = ~[
353+
@~"_", @~"anon", @~"drop", @~"", @~"unary", @~"!",
354+
@~"[]", @~"unary-", @~"__extensions__", @~"self",
355+
@~"item", @~"block", @~"stmt", @~"pat", @~"expr",
356+
@~"ty", @~"ident", @~"path", @~"tt", @~"matchers",
357+
@~"str", @~"TyVisitor", @~"arg", @~"descrim",
358+
@~"__rust_abi", @~"__rust_stack_shim", @~"TyDesc",
359+
@~"dtor", @~"main", @~"<opaque>", @~"blk", @~"static",
360+
@~"intrinsic", @~"__foreign_mod__"
361+
];
362+
363+
let rv = @ident_interner {
364+
interner: interner::mk_prefill(init_vec)
365+
};
366+
367+
task::local_data::local_data_set(interner_key!(), @rv);
368+
369+
rv
370+
}
371+
}
372+
}
368373
}
369374

370375
/* for when we don't care about the contents; doesn't interact with TLD or

0 commit comments

Comments
 (0)