@@ -218,24 +218,25 @@ fn analysis<'tcx>(
218218 // passes are timed inside typeck
219219 typeck:: check_crate ( tcx) ?;
220220
221- time ( sess, "misc checking" , || {
221+ time ( sess, "misc checking 2 " , || {
222222 parallel ! ( {
223- time( sess, "rvalue promotion" , || {
224- rvalue_promotion:: check_crate( tcx)
225- } ) ;
226- } , {
227- time( sess, "intrinsic checking" , || {
228- middle:: intrinsicck:: check_crate( tcx)
223+ time( sess, "rvalue promotion + match checking" , || {
224+ tcx. par_body_owners( |def_id| {
225+ tcx. ensure( ) . const_is_rvalue_promotable_to_static( def_id) ;
226+ tcx. ensure( ) . check_match( def_id) ;
227+ } ) ;
229228 } ) ;
230229 } , {
231- time( sess, "match checking" , || mir:: matchck_crate( tcx) ) ;
232- } , {
233- // this must run before MIR dump, because
234- // "not all control paths return a value" is reported here.
235- //
236- // maybe move the check to a MIR pass?
237- time( sess, "liveness checking" , || {
238- middle:: liveness:: check_crate( tcx)
230+ time( sess, "liveness checking + intrinsic checking" , || {
231+ par_iter( & tcx. hir( ) . krate( ) . modules) . for_each( |( & module, _) | {
232+ // this must run before MIR dump, because
233+ // "not all control paths return a value" is reported here.
234+ //
235+ // maybe move the check to a MIR pass?
236+ tcx. ensure( ) . check_mod_liveness( tcx. hir( ) . local_def_id( module) ) ;
237+
238+ tcx. ensure( ) . check_mod_intrinsics( tcx. hir( ) . local_def_id( module) ) ;
239+ } ) ;
239240 } ) ;
240241 } ) ;
241242 } ) ;
@@ -276,7 +277,7 @@ fn analysis<'tcx>(
276277 return Err ( ErrorReported ) ;
277278 }
278279
279- time ( sess, "misc checking" , || {
280+ time ( sess, "misc checking 3 " , || {
280281 parallel ! ( {
281282 time( sess, "privacy access levels" , || {
282283 tcx. ensure( ) . privacy_access_levels( LOCAL_CRATE ) ;
0 commit comments