diff options
| author | Brian Anderson <banderson@mozilla.com> | 2012-03-27 14:03:57 -0700 |
|---|---|---|
| committer | Brian Anderson <banderson@mozilla.com> | 2012-03-27 14:16:46 -0700 |
| commit | ba3292d3be4b05a86a03c5f03eea24fe289a4e81 (patch) | |
| tree | 7e8cfea4ce8699fce5b1613578e9ba592a7f9e7a | |
| parent | 2142c5ebbb2d94addee281f7c66c02efabed7085 (diff) | |
| download | rust-ba3292d3be4b05a86a03c5f03eea24fe289a4e81.tar.gz rust-ba3292d3be4b05a86a03c5f03eea24fe289a4e81.zip | |
rust: Remove extensions' dependency on the session
| -rw-r--r-- | src/rustc/driver/driver.rs | 3 | ||||
| -rw-r--r-- | src/rustc/syntax/ext/base.rs | 9 | ||||
| -rw-r--r-- | src/rustc/syntax/ext/expand.rs | 10 |
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. |
