@@ -205,24 +205,20 @@ pub fn run_compiler<'a>(args: &[String],
205
205
206
206
let loader = file_loader. unwrap_or ( box RealFileLoader ) ;
207
207
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
+ ) ;
215
211
rustc_lint:: register_builtins ( & mut sess. lint_store . borrow_mut ( ) , Some ( & sess) ) ;
212
+
216
213
let mut cfg = config:: build_configuration ( & sess, cfg) ;
217
214
target_features:: add_configuration ( & mut cfg, & sess) ;
215
+ sess. parse_sess . config = cfg;
218
216
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) ) ;
221
218
222
219
let plugins = sess. opts . debugging_opts . extra_plugins . clone ( ) ;
223
220
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) ,
226
222
Some ( sess) )
227
223
}
228
224
@@ -310,7 +306,6 @@ pub trait CompilerCalls<'a> {
310
306
fn late_callback ( & mut self ,
311
307
_: & getopts:: Matches ,
312
308
_: & Session ,
313
- _: & ast:: CrateConfig ,
314
309
_: & Input ,
315
310
_: & Option < PathBuf > ,
316
311
_: & Option < PathBuf > )
@@ -439,19 +434,18 @@ impl<'a> CompilerCalls<'a> for RustcDefaultCalls {
439
434
}
440
435
let dep_graph = DepGraph :: new ( sopts. build_dep_graph ( ) ) ;
441
436
let cstore = Rc :: new ( CStore :: new ( & dep_graph) ) ;
442
- let sess = build_session ( sopts. clone ( ) ,
437
+ let mut sess = build_session ( sopts. clone ( ) ,
443
438
& dep_graph,
444
439
None ,
445
440
descriptions. clone ( ) ,
446
441
cstore. clone ( ) ) ;
447
442
rustc_lint:: register_builtins ( & mut sess. lint_store . borrow_mut ( ) , Some ( & sess) ) ;
448
443
let mut cfg = config:: build_configuration ( & sess, cfg. clone ( ) ) ;
449
444
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
+
455
449
if should_stop == Compilation :: Stop {
456
450
return None ;
457
451
}
@@ -467,12 +461,11 @@ impl<'a> CompilerCalls<'a> for RustcDefaultCalls {
467
461
fn late_callback ( & mut self ,
468
462
matches : & getopts:: Matches ,
469
463
sess : & Session ,
470
- cfg : & ast:: CrateConfig ,
471
464
input : & Input ,
472
465
odir : & Option < PathBuf > ,
473
466
ofile : & Option < PathBuf > )
474
467
-> Compilation {
475
- RustcDefaultCalls :: print_crate_info ( sess, cfg , Some ( input) , odir, ofile)
468
+ RustcDefaultCalls :: print_crate_info ( sess, Some ( input) , odir, ofile)
476
469
. and_then ( || RustcDefaultCalls :: list_metadata ( sess, matches, input) )
477
470
}
478
471
@@ -593,7 +586,6 @@ impl RustcDefaultCalls {
593
586
594
587
595
588
fn print_crate_info ( sess : & Session ,
596
- cfg : & ast:: CrateConfig ,
597
589
input : Option < & Input > ,
598
590
odir : & Option < PathBuf > ,
599
591
ofile : & Option < PathBuf > )
@@ -649,8 +641,8 @@ impl RustcDefaultCalls {
649
641
let allow_unstable_cfg = UnstableFeatures :: from_environment ( )
650
642
. is_nightly_build ( ) ;
651
643
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 ( ) {
654
646
continue ;
655
647
}
656
648
@@ -1036,13 +1028,10 @@ pub fn handle_options(args: &[String]) -> Option<getopts::Matches> {
1036
1028
fn parse_crate_attrs < ' a > ( sess : & ' a Session , input : & Input ) -> PResult < ' a , Vec < ast:: Attribute > > {
1037
1029
match * input {
1038
1030
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 )
1040
1032
}
1041
1033
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 )
1046
1035
}
1047
1036
}
1048
1037
}
0 commit comments