Skip to content

Commit b653fa0

Browse files
committed
Avoid cloning ast::CrateConfig
1 parent ed885e3 commit b653fa0

File tree

5 files changed

+12
-15
lines changed

5 files changed

+12
-15
lines changed

src/librustc/driver/driver.rs

+4-6
Original file line numberDiff line numberDiff line change
@@ -176,7 +176,6 @@ pub fn phase_1_parse_input(sess: Session, cfg: ast::CrateConfig, input: &Input)
176176
/// harness if one is to be provided and injection of a dependency on the
177177
/// standard library and prelude.
178178
pub fn phase_2_configure_and_expand(sess: Session,
179-
cfg: ast::CrateConfig,
180179
loader: &mut CrateLoader,
181180
mut crate: ast::Crate)
182181
-> (ast::Crate, syntax::ast_map::Map) {
@@ -205,7 +204,6 @@ pub fn phase_2_configure_and_expand(sess: Session,
205204
crate = time(time_passes, "expansion", crate, |crate| {
206205
syntax::ext::expand::expand_crate(sess.parse_sess,
207206
loader,
208-
cfg.clone(),
209207
crate)
210208
});
211209
// dump the syntax-time crates
@@ -520,10 +518,10 @@ pub fn compile_input(sess: Session, cfg: ast::CrateConfig, input: &Input,
520518
// possible to keep the peak memory usage low
521519
let (outputs, trans) = {
522520
let (expanded_crate, ast_map) = {
523-
let crate = phase_1_parse_input(sess, cfg.clone(), input);
521+
let crate = phase_1_parse_input(sess, cfg, input);
524522
if stop_after_phase_1(sess) { return; }
525523
let loader = &mut Loader::new(sess);
526-
phase_2_configure_and_expand(sess, cfg, loader, crate)
524+
phase_2_configure_and_expand(sess, loader, crate)
527525
};
528526
let outputs = build_output_filenames(input, outdir, output,
529527
expanded_crate.attrs, sess);
@@ -610,12 +608,12 @@ pub fn pretty_print_input(sess: Session,
610608
cfg: ast::CrateConfig,
611609
input: &Input,
612610
ppm: PpMode) {
613-
let crate = phase_1_parse_input(sess, cfg.clone(), input);
611+
let crate = phase_1_parse_input(sess, cfg, input);
614612
615613
let (crate, ast_map, is_expanded) = match ppm {
616614
PpmExpanded | PpmExpandedIdentified | PpmTyped => {
617615
let loader = &mut Loader::new(sess);
618-
let (crate, ast_map) = phase_2_configure_and_expand(sess, cfg, loader, crate);
616+
let (crate, ast_map) = phase_2_configure_and_expand(sess, loader, crate);
619617
(crate, Some(ast_map), true)
620618
}
621619
_ => (crate, None, false)

src/librustdoc/core.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -76,9 +76,9 @@ fn get_ast_and_resolve(cpath: &Path,
7676
cfg.push(@dummy_spanned(ast::MetaWord(cfg_)));
7777
}
7878

79-
let crate = phase_1_parse_input(sess, cfg.clone(), &input);
79+
let crate = phase_1_parse_input(sess, cfg, &input);
8080
let loader = &mut Loader::new(sess);
81-
let (crate, ast_map) = phase_2_configure_and_expand(sess, cfg, loader, crate);
81+
let (crate, ast_map) = phase_2_configure_and_expand(sess, loader, crate);
8282
let driver::driver::CrateAnalysis {
8383
exported_items, public_items, ty_cx, ..
8484
} = phase_3_run_analysis_passes(sess, &crate, ast_map);

src/librustdoc/test.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -59,9 +59,9 @@ pub fn run(input: &str, matches: &getopts::Matches) -> int {
5959
span_diagnostic_handler);
6060

6161
let cfg = driver::build_configuration(sess);
62-
let crate = driver::phase_1_parse_input(sess, cfg.clone(), &input);
62+
let crate = driver::phase_1_parse_input(sess, cfg, &input);
6363
let loader = &mut Loader::new(sess);
64-
let (crate, _) = driver::phase_2_configure_and_expand(sess, cfg, loader, crate);
64+
let (crate, _) = driver::phase_2_configure_and_expand(sess, loader, crate);
6565

6666
let ctx = @core::DocContext {
6767
crate: crate,

src/libsyntax/ext/expand.rs

+1-2
Original file line numberDiff line numberDiff line change
@@ -800,9 +800,8 @@ impl<'a> Folder for MacroExpander<'a> {
800800

801801
pub fn expand_crate(parse_sess: @parse::ParseSess,
802802
loader: &mut CrateLoader,
803-
cfg: ast::CrateConfig,
804803
c: Crate) -> Crate {
805-
let mut cx = ExtCtxt::new(parse_sess, cfg.clone(), loader);
804+
let mut cx = ExtCtxt::new(parse_sess, c.config.clone(), loader);
806805
let mut expander = MacroExpander {
807806
extsbox: syntax_expander_table(),
808807
cx: &mut cx,

src/libsyntax/parse/mod.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ pub fn parse_crate_from_file(
7474
cfg: ast::CrateConfig,
7575
sess: @ParseSess
7676
) -> ast::Crate {
77-
new_parser_from_file(sess, /*bad*/ cfg.clone(), input).parse_crate_mod()
77+
new_parser_from_file(sess, cfg, input).parse_crate_mod()
7878
// why is there no p.abort_if_errors here?
7979
}
8080

@@ -94,7 +94,7 @@ pub fn parse_crate_from_source_str(name: ~str,
9494
sess: @ParseSess)
9595
-> ast::Crate {
9696
let mut p = new_parser_from_source_str(sess,
97-
/*bad*/ cfg.clone(),
97+
cfg,
9898
name,
9999
source);
100100
maybe_aborted(p.parse_crate_mod(),p)
@@ -106,7 +106,7 @@ pub fn parse_crate_attrs_from_source_str(name: ~str,
106106
sess: @ParseSess)
107107
-> ~[ast::Attribute] {
108108
let mut p = new_parser_from_source_str(sess,
109-
/*bad*/ cfg.clone(),
109+
cfg,
110110
name,
111111
source);
112112
let (inner, _) = maybe_aborted(p.parse_inner_attrs_and_next(),p);

0 commit comments

Comments
 (0)