about summary refs log tree commit diff
path: root/src/libsyntax/parse.rs
diff options
context:
space:
mode:
authorPaul Stansifer <paul.stansifer@gmail.com>2012-08-02 14:33:26 -0700
committerPaul Stansifer <paul.stansifer@gmail.com>2012-08-22 14:59:24 -0700
commit9a7890d73af5ebe4bf862fa727427e290da1391b (patch)
treeab7db3f5f973934aed69d3eb0c7e79c18ccf7732 /src/libsyntax/parse.rs
parent744fea1a4f1b826def484aa4584e939fa272a8c3 (diff)
downloadrust-9a7890d73af5ebe4bf862fa727427e290da1391b.tar.gz
rust-9a7890d73af5ebe4bf862fa727427e290da1391b.zip
Centralize ident interner generation.
Diffstat (limited to 'src/libsyntax/parse.rs')
-rw-r--r--src/libsyntax/parse.rs21
1 files changed, 10 insertions, 11 deletions
diff --git a/src/libsyntax/parse.rs b/src/libsyntax/parse.rs
index deaaaf69b1c..bb21ba92679 100644
--- a/src/libsyntax/parse.rs
+++ b/src/libsyntax/parse.rs
@@ -19,12 +19,13 @@ import ast::node_id;
 import util::interner;
 import diagnostic::{span_handler, mk_span_handler, mk_handler, emitter};
 import lexer::{reader, string_reader};
+import parse::token::{ident_interner, mk_ident_interner};
 
 type parse_sess = @{
     cm: codemap::codemap,
     mut next_id: node_id,
     span_diagnostic: span_handler,
-    interner: interner::interner<@~str>,
+    interner: ident_interner,
     // these two must be kept up to date
     mut chpos: uint,
     mut byte_pos: uint
@@ -33,21 +34,19 @@ type parse_sess = @{
 fn new_parse_sess(demitter: option<emitter>) -> parse_sess {
     let cm = codemap::new_codemap();
     return @{cm: cm,
-          mut next_id: 1,
-          span_diagnostic: mk_span_handler(mk_handler(demitter), cm),
-          interner: interner::mk::<@~str>(|x| str::hash(*x),
-                                          |x,y| str::eq(*x, *y)),
-          mut chpos: 0u, mut byte_pos: 0u};
+             mut next_id: 1,
+             span_diagnostic: mk_span_handler(mk_handler(demitter), cm),
+             interner: mk_ident_interner(),
+             mut chpos: 0u, mut byte_pos: 0u};
 }
 
 fn new_parse_sess_special_handler(sh: span_handler, cm: codemap::codemap)
     -> parse_sess {
     return @{cm: cm,
-          mut next_id: 1,
-          span_diagnostic: sh,
-          interner: interner::mk::<@~str>(|x| str::hash(*x),
-                                          |x,y| str::eq(*x, *y)),
-          mut chpos: 0u, mut byte_pos: 0u};
+             mut next_id: 1,
+             span_diagnostic: sh,
+             interner: mk_ident_interner(),
+             mut chpos: 0u, mut byte_pos: 0u};
 }
 
 fn parse_crate_from_file(input: ~str, cfg: ast::crate_cfg,