@@ -205,24 +205,20 @@ pub fn run_compiler<'a>(args: &[String],
205205
206206 let loader = file_loader. unwrap_or ( box RealFileLoader ) ;
207207 let codemap = Rc :: new ( CodeMap :: with_file_loader ( loader) ) ;
208- let sess = session:: build_session_with_codemap ( sopts,
209- & dep_graph,
210- input_file_path,
211- descriptions,
212- cstore. clone ( ) ,
213- codemap,
214- emitter_dest) ;
208+ let mut sess = session:: build_session_with_codemap (
209+ sopts, & dep_graph, input_file_path, descriptions, cstore. clone ( ) , codemap, emitter_dest,
210+ ) ;
215211 rustc_lint:: register_builtins ( & mut sess. lint_store . borrow_mut ( ) , Some ( & sess) ) ;
212+
216213 let mut cfg = config:: build_configuration ( & sess, cfg) ;
217214 target_features:: add_configuration ( & mut cfg, & sess) ;
215+ sess. parse_sess . config = cfg;
218216
219- do_or_return ! ( callbacks. late_callback( & matches, & sess, & cfg, & input, & odir, & ofile) ,
220- Some ( sess) ) ;
217+ do_or_return ! ( callbacks. late_callback( & matches, & sess, & input, & odir, & ofile) , Some ( sess) ) ;
221218
222219 let plugins = sess. opts . debugging_opts . extra_plugins . clone ( ) ;
223220 let control = callbacks. build_controller ( & sess, & matches) ;
224- ( driver:: compile_input ( & sess, & cstore, cfg, & input, & odir, & ofile,
225- Some ( plugins) , & control) ,
221+ ( driver:: compile_input ( & sess, & cstore, & input, & odir, & ofile, Some ( plugins) , & control) ,
226222 Some ( sess) )
227223}
228224
@@ -310,7 +306,6 @@ pub trait CompilerCalls<'a> {
310306 fn late_callback ( & mut self ,
311307 _: & getopts:: Matches ,
312308 _: & Session ,
313- _: & ast:: CrateConfig ,
314309 _: & Input ,
315310 _: & Option < PathBuf > ,
316311 _: & Option < PathBuf > )
@@ -439,19 +434,18 @@ impl<'a> CompilerCalls<'a> for RustcDefaultCalls {
439434 }
440435 let dep_graph = DepGraph :: new ( sopts. build_dep_graph ( ) ) ;
441436 let cstore = Rc :: new ( CStore :: new ( & dep_graph) ) ;
442- let sess = build_session ( sopts. clone ( ) ,
437+ let mut sess = build_session ( sopts. clone ( ) ,
443438 & dep_graph,
444439 None ,
445440 descriptions. clone ( ) ,
446441 cstore. clone ( ) ) ;
447442 rustc_lint:: register_builtins ( & mut sess. lint_store . borrow_mut ( ) , Some ( & sess) ) ;
448443 let mut cfg = config:: build_configuration ( & sess, cfg. clone ( ) ) ;
449444 target_features:: add_configuration ( & mut cfg, & sess) ;
450- let should_stop = RustcDefaultCalls :: print_crate_info ( & sess,
451- & cfg,
452- None ,
453- odir,
454- ofile) ;
445+ sess. parse_sess . config = cfg;
446+ let should_stop =
447+ RustcDefaultCalls :: print_crate_info ( & sess, None , odir, ofile) ;
448+
455449 if should_stop == Compilation :: Stop {
456450 return None ;
457451 }
@@ -467,12 +461,11 @@ impl<'a> CompilerCalls<'a> for RustcDefaultCalls {
467461 fn late_callback ( & mut self ,
468462 matches : & getopts:: Matches ,
469463 sess : & Session ,
470- cfg : & ast:: CrateConfig ,
471464 input : & Input ,
472465 odir : & Option < PathBuf > ,
473466 ofile : & Option < PathBuf > )
474467 -> Compilation {
475- RustcDefaultCalls :: print_crate_info ( sess, cfg , Some ( input) , odir, ofile)
468+ RustcDefaultCalls :: print_crate_info ( sess, Some ( input) , odir, ofile)
476469 . and_then ( || RustcDefaultCalls :: list_metadata ( sess, matches, input) )
477470 }
478471
@@ -593,7 +586,6 @@ impl RustcDefaultCalls {
593586
594587
595588 fn print_crate_info ( sess : & Session ,
596- cfg : & ast:: CrateConfig ,
597589 input : Option < & Input > ,
598590 odir : & Option < PathBuf > ,
599591 ofile : & Option < PathBuf > )
@@ -649,8 +641,8 @@ impl RustcDefaultCalls {
649641 let allow_unstable_cfg = UnstableFeatures :: from_environment ( )
650642 . is_nightly_build ( ) ;
651643
652- for cfg in cfg {
653- if !allow_unstable_cfg && GatedCfg :: gate ( & * cfg) . is_some ( ) {
644+ for cfg in & sess . parse_sess . config {
645+ if !allow_unstable_cfg && GatedCfg :: gate ( cfg) . is_some ( ) {
654646 continue ;
655647 }
656648
@@ -1036,13 +1028,10 @@ pub fn handle_options(args: &[String]) -> Option<getopts::Matches> {
10361028fn parse_crate_attrs < ' a > ( sess : & ' a Session , input : & Input ) -> PResult < ' a , Vec < ast:: Attribute > > {
10371029 match * input {
10381030 Input :: File ( ref ifile) => {
1039- parse:: parse_crate_attrs_from_file ( ifile, Vec :: new ( ) , & sess. parse_sess )
1031+ parse:: parse_crate_attrs_from_file ( ifile, & sess. parse_sess )
10401032 }
10411033 Input :: Str { ref name, ref input } => {
1042- parse:: parse_crate_attrs_from_source_str ( name. clone ( ) ,
1043- input. clone ( ) ,
1044- Vec :: new ( ) ,
1045- & sess. parse_sess )
1034+ parse:: parse_crate_attrs_from_source_str ( name. clone ( ) , input. clone ( ) , & sess. parse_sess )
10461035 }
10471036 }
10481037}
0 commit comments