@@ -70,6 +70,7 @@ pub fn compile_input(sess: Session,
7070 ( control. $point. callback) ( state) ;
7171
7272 if control. $point. stop == Compilation :: Stop {
73+ $tsess. abort_if_errors( ) ;
7374 return ;
7475 }
7576 } ) }
@@ -469,7 +470,11 @@ pub fn phase_2_configure_and_expand(sess: &Session,
469470
470471 let mut feature_gated_cfgs = vec ! [ ] ;
471472 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+ } )
473478 } ) ;
474479
475480 * sess. crate_types . borrow_mut ( ) = collect_crate_types ( sess, & krate. attrs ) ;
@@ -605,17 +610,23 @@ pub fn phase_2_configure_and_expand(sess: &Session,
605610 // JBC: make CFG processing part of expansion to avoid this problem:
606611
607612 // 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+ } ) ;
611619
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
619630 } ) ;
620631
621632 krate = time ( time_passes, "maybe building test harness" , || {
0 commit comments