about summary refs log tree commit diff
diff options
context:
space:
mode:
authorBrian Anderson <banderson@mozilla.com>2012-03-27 14:03:57 -0700
committerBrian Anderson <banderson@mozilla.com>2012-03-27 14:16:46 -0700
commitba3292d3be4b05a86a03c5f03eea24fe289a4e81 (patch)
tree7e8cfea4ce8699fce5b1613578e9ba592a7f9e7a
parent2142c5ebbb2d94addee281f7c66c02efabed7085 (diff)
downloadrust-ba3292d3be4b05a86a03c5f03eea24fe289a4e81.tar.gz
rust-ba3292d3be4b05a86a03c5f03eea24fe289a4e81.zip
rust: Remove extensions' dependency on the session
-rw-r--r--src/rustc/driver/driver.rs3
-rw-r--r--src/rustc/syntax/ext/base.rs9
-rw-r--r--src/rustc/syntax/ext/expand.rs10
3 files changed, 10 insertions, 12 deletions
diff --git a/src/rustc/driver/driver.rs b/src/rustc/driver/driver.rs
index 92e88860bbe..c6b503a3fdf 100644
--- a/src/rustc/driver/driver.rs
+++ b/src/rustc/driver/driver.rs
@@ -121,7 +121,8 @@ fn compile_upto(sess: session, cfg: ast::crate_cfg,
              bind front::test::modify_for_testing(sess, crate));
     crate =
         time(time_passes, "expansion",
-             bind syntax::ext::expand::expand_crate(sess, crate));
+             bind syntax::ext::expand::expand_crate(
+                 sess.parse_sess, sess.opts.cfg, crate));
 
     if upto == cu_expand { ret {crate: crate, tcx: none}; }
 
diff --git a/src/rustc/syntax/ext/base.rs b/src/rustc/syntax/ext/base.rs
index 86f13822c6e..a0d4a2d288f 100644
--- a/src/rustc/syntax/ext/base.rs
+++ b/src/rustc/syntax/ext/base.rs
@@ -45,7 +45,6 @@ fn syntax_expander_table() -> hashmap<str, syntax_extension> {
 }
 
 iface ext_ctxt {
-    fn session() -> driver::session::session;
     fn codemap() -> codemap;
     fn parse_sess() -> parser::parse_sess;
     fn cfg() -> ast::crate_cfg;
@@ -61,15 +60,12 @@ iface ext_ctxt {
     fn next_id() -> ast::node_id;
 }
 
-fn mk_ctxt(session: driver::session::session,
-           parse_sess: parser::parse_sess,
+fn mk_ctxt(parse_sess: parser::parse_sess,
            cfg: ast::crate_cfg) -> ext_ctxt {
-    type ctxt_repr = {session: driver::session::session,
-                      parse_sess: parser::parse_sess,
+    type ctxt_repr = {parse_sess: parser::parse_sess,
                       cfg: ast::crate_cfg,
                       mut backtrace: expn_info};
     impl of ext_ctxt for ctxt_repr {
-        fn session() -> driver::session::session { self.session }
         fn codemap() -> codemap { self.parse_sess.cm }
         fn parse_sess() -> parser::parse_sess { self.parse_sess }
         fn cfg() -> ast::crate_cfg { self.cfg }
@@ -119,7 +115,6 @@ fn mk_ctxt(session: driver::session::session,
         }
     }
     let imp : ctxt_repr = {
-        session: session,
         parse_sess: parse_sess,
         cfg: cfg,
         mut backtrace: none
diff --git a/src/rustc/syntax/ext/expand.rs b/src/rustc/syntax/ext/expand.rs
index a1d2e3b4acb..b16e0c0a1a0 100644
--- a/src/rustc/syntax/ext/expand.rs
+++ b/src/rustc/syntax/ext/expand.rs
@@ -9,6 +9,7 @@ import syntax::ast::{crate, expr_, expr_mac, mac_invoc};
 import syntax::fold::*;
 import syntax::ext::base::*;
 import syntax::ext::qquote::{qq_helper};
+import syntax::parse::parser;
 import syntax::parse::parser::parse_expr_from_source_str;
 
 
@@ -119,10 +120,11 @@ fn core_macros() -> str {
 }";
 }
 
-fn expand_crate(sess: session::session, c: @crate) -> @crate {
+fn expand_crate(parse_sess: parser::parse_sess,
+                cfg: ast::crate_cfg, c: @crate) -> @crate {
     let exts = syntax_expander_table();
     let afp = default_ast_fold();
-    let cx: ext_ctxt = mk_ctxt(sess, sess.parse_sess, sess.opts.cfg);
+    let cx: ext_ctxt = mk_ctxt(parse_sess, cfg);
     let f_pre =
         {fold_expr: bind expand_expr(exts, cx, _, _, _, afp.fold_expr),
          fold_mod: bind expand_mod_items(exts, cx, _, _, afp.fold_mod),
@@ -131,8 +133,8 @@ fn expand_crate(sess: session::session, c: @crate) -> @crate {
     let f = make_fold(f_pre);
     let cm = parse_expr_from_source_str("<core-macros>",
                                         @core_macros(),
-                                        sess.opts.cfg,
-                                        sess.parse_sess);
+                                        cfg,
+                                        parse_sess);
 
     // This is run for its side-effects on the expander env,
     // as it registers all the core macros as expanders.