@@ -70,6 +70,7 @@ pub fn compile_input(sess: Session,
70
70
( control. $point. callback) ( state) ;
71
71
72
72
if control. $point. stop == Compilation :: Stop {
73
+ $tsess. abort_if_errors( ) ;
73
74
return ;
74
75
}
75
76
} ) }
@@ -469,7 +470,11 @@ pub fn phase_2_configure_and_expand(sess: &Session,
469
470
470
471
let mut feature_gated_cfgs = vec ! [ ] ;
471
472
krate = time ( time_passes, "configuration 1" , || {
472
- syntax:: config:: strip_unconfigured_items ( sess. diagnostic ( ) , krate, & mut feature_gated_cfgs)
473
+ sess. abort_if_new_errors ( || {
474
+ syntax:: config:: strip_unconfigured_items ( sess. diagnostic ( ) ,
475
+ krate,
476
+ & mut feature_gated_cfgs)
477
+ } )
473
478
} ) ;
474
479
475
480
* sess. crate_types . borrow_mut ( ) = collect_crate_types ( sess, & krate. attrs ) ;
@@ -605,17 +610,23 @@ pub fn phase_2_configure_and_expand(sess: &Session,
605
610
// JBC: make CFG processing part of expansion to avoid this problem:
606
611
607
612
// strip again, in case expansion added anything with a #[cfg].
608
- krate = time ( time_passes, "configuration 2" , || {
609
- syntax:: config:: strip_unconfigured_items ( sess. diagnostic ( ) , krate, & mut feature_gated_cfgs)
610
- } ) ;
613
+ krate = sess. abort_if_new_errors ( || {
614
+ let krate = time ( time_passes, "configuration 2" , || {
615
+ syntax:: config:: strip_unconfigured_items ( sess. diagnostic ( ) ,
616
+ krate,
617
+ & mut feature_gated_cfgs)
618
+ } ) ;
611
619
612
- time ( time_passes, "gated configuration checking" , || {
613
- let features = sess. features . borrow ( ) ;
614
- feature_gated_cfgs. sort ( ) ;
615
- feature_gated_cfgs. dedup ( ) ;
616
- for cfg in & feature_gated_cfgs {
617
- cfg. check_and_emit ( sess. diagnostic ( ) , & features, sess. codemap ( ) ) ;
618
- }
620
+ time ( time_passes, "gated configuration checking" , || {
621
+ let features = sess. features . borrow ( ) ;
622
+ feature_gated_cfgs. sort ( ) ;
623
+ feature_gated_cfgs. dedup ( ) ;
624
+ for cfg in & feature_gated_cfgs {
625
+ cfg. check_and_emit ( sess. diagnostic ( ) , & features, sess. codemap ( ) ) ;
626
+ }
627
+ } ) ;
628
+
629
+ krate
619
630
} ) ;
620
631
621
632
krate = time ( time_passes, "maybe building test harness" , || {
0 commit comments