diff --git a/src/librustc/driver/driver.rs b/src/librustc/driver/driver.rs index a61c297956d78..c3b851b76ac04 100644 --- a/src/librustc/driver/driver.rs +++ b/src/librustc/driver/driver.rs @@ -176,7 +176,6 @@ pub fn phase_1_parse_input(sess: Session, cfg: ast::CrateConfig, input: &Input) /// harness if one is to be provided and injection of a dependency on the /// standard library and prelude. pub fn phase_2_configure_and_expand(sess: Session, - cfg: ast::CrateConfig, loader: &mut CrateLoader, mut crate: ast::Crate) -> (ast::Crate, syntax::ast_map::Map) { @@ -205,7 +204,6 @@ pub fn phase_2_configure_and_expand(sess: Session, crate = time(time_passes, "expansion", crate, |crate| { syntax::ext::expand::expand_crate(sess.parse_sess, loader, - cfg.clone(), crate) }); // dump the syntax-time crates @@ -520,10 +518,10 @@ pub fn compile_input(sess: Session, cfg: ast::CrateConfig, input: &Input, // possible to keep the peak memory usage low let (outputs, trans) = { let (expanded_crate, ast_map) = { - let crate = phase_1_parse_input(sess, cfg.clone(), input); + let crate = phase_1_parse_input(sess, cfg, input); if stop_after_phase_1(sess) { return; } let loader = &mut Loader::new(sess); - phase_2_configure_and_expand(sess, cfg, loader, crate) + phase_2_configure_and_expand(sess, loader, crate) }; let outputs = build_output_filenames(input, outdir, output, expanded_crate.attrs, sess); @@ -610,12 +608,12 @@ pub fn pretty_print_input(sess: Session, cfg: ast::CrateConfig, input: &Input, ppm: PpMode) { - let crate = phase_1_parse_input(sess, cfg.clone(), input); + let crate = phase_1_parse_input(sess, cfg, input); let (crate, ast_map, is_expanded) = match ppm { PpmExpanded | PpmExpandedIdentified | PpmTyped => { let loader = &mut Loader::new(sess); - let (crate, ast_map) = phase_2_configure_and_expand(sess, cfg, loader, crate); + let (crate, ast_map) = phase_2_configure_and_expand(sess, loader, crate); (crate, Some(ast_map), true) } _ => (crate, None, false) diff --git a/src/librustdoc/core.rs b/src/librustdoc/core.rs index 0e2d6c972ae60..1ad60960de63f 100644 --- a/src/librustdoc/core.rs +++ b/src/librustdoc/core.rs @@ -76,9 +76,9 @@ fn get_ast_and_resolve(cpath: &Path, cfg.push(@dummy_spanned(ast::MetaWord(cfg_))); } - let crate = phase_1_parse_input(sess, cfg.clone(), &input); + let crate = phase_1_parse_input(sess, cfg, &input); let loader = &mut Loader::new(sess); - let (crate, ast_map) = phase_2_configure_and_expand(sess, cfg, loader, crate); + let (crate, ast_map) = phase_2_configure_and_expand(sess, loader, crate); let driver::driver::CrateAnalysis { exported_items, public_items, ty_cx, .. } = phase_3_run_analysis_passes(sess, &crate, ast_map); diff --git a/src/librustdoc/test.rs b/src/librustdoc/test.rs index 9e3b217f69f68..28e62f8fb299a 100644 --- a/src/librustdoc/test.rs +++ b/src/librustdoc/test.rs @@ -59,9 +59,9 @@ pub fn run(input: &str, matches: &getopts::Matches) -> int { span_diagnostic_handler); let cfg = driver::build_configuration(sess); - let crate = driver::phase_1_parse_input(sess, cfg.clone(), &input); + let crate = driver::phase_1_parse_input(sess, cfg, &input); let loader = &mut Loader::new(sess); - let (crate, _) = driver::phase_2_configure_and_expand(sess, cfg, loader, crate); + let (crate, _) = driver::phase_2_configure_and_expand(sess, loader, crate); let ctx = @core::DocContext { crate: crate, diff --git a/src/libsyntax/ext/expand.rs b/src/libsyntax/ext/expand.rs index ae93c235ad23c..76aa0e981bd44 100644 --- a/src/libsyntax/ext/expand.rs +++ b/src/libsyntax/ext/expand.rs @@ -800,9 +800,8 @@ impl<'a> Folder for MacroExpander<'a> { pub fn expand_crate(parse_sess: @parse::ParseSess, loader: &mut CrateLoader, - cfg: ast::CrateConfig, c: Crate) -> Crate { - let mut cx = ExtCtxt::new(parse_sess, cfg.clone(), loader); + let mut cx = ExtCtxt::new(parse_sess, c.config.clone(), loader); let mut expander = MacroExpander { extsbox: syntax_expander_table(), cx: &mut cx, @@ -1033,7 +1032,7 @@ mod test { ~[],sess); // should fail: let mut loader = ErrLoader; - expand_crate(sess,&mut loader,~[],crate_ast); + expand_crate(sess,&mut loader,crate_ast); } // make sure that macros can leave scope for modules @@ -1048,7 +1047,7 @@ mod test { ~[],sess); // should fail: let mut loader = ErrLoader; - expand_crate(sess,&mut loader,~[],crate_ast); + expand_crate(sess,&mut loader,crate_ast); } // macro_escape modules shouldn't cause macros to leave scope @@ -1062,7 +1061,7 @@ mod test { ~[], sess); // should fail: let mut loader = ErrLoader; - expand_crate(sess, &mut loader, ~[], crate_ast); + expand_crate(sess, &mut loader, crate_ast); } #[test] fn test_contains_flatten (){ @@ -1135,7 +1134,7 @@ mod test { let (crate_ast,ps) = string_to_crate_and_sess(crate_str); // the cfg argument actually does matter, here... let mut loader = ErrLoader; - expand_crate(ps,&mut loader,~[],crate_ast) + expand_crate(ps,&mut loader,crate_ast) } //fn expand_and_resolve(crate_str: @str) -> ast::crate { diff --git a/src/libsyntax/parse/mod.rs b/src/libsyntax/parse/mod.rs index 328f0e7f22187..abadcee26a78c 100644 --- a/src/libsyntax/parse/mod.rs +++ b/src/libsyntax/parse/mod.rs @@ -74,7 +74,7 @@ pub fn parse_crate_from_file( cfg: ast::CrateConfig, sess: @ParseSess ) -> ast::Crate { - new_parser_from_file(sess, /*bad*/ cfg.clone(), input).parse_crate_mod() + new_parser_from_file(sess, cfg, input).parse_crate_mod() // why is there no p.abort_if_errors here? } @@ -94,7 +94,7 @@ pub fn parse_crate_from_source_str(name: ~str, sess: @ParseSess) -> ast::Crate { let mut p = new_parser_from_source_str(sess, - /*bad*/ cfg.clone(), + cfg, name, source); maybe_aborted(p.parse_crate_mod(),p) @@ -106,7 +106,7 @@ pub fn parse_crate_attrs_from_source_str(name: ~str, sess: @ParseSess) -> ~[ast::Attribute] { let mut p = new_parser_from_source_str(sess, - /*bad*/ cfg.clone(), + cfg, name, source); let (inner, _) = maybe_aborted(p.parse_inner_attrs_and_next(),p);