@@ -102,7 +102,7 @@ use rustc::ty::subst::SubstsRef;
102102use rustc:: ty:: { self , Ty , TyCtxt } ;
103103use rustc:: util;
104104use rustc:: util:: common:: ErrorReported ;
105- use rustc_data_structures:: sync:: par_for_each;
105+ use rustc_data_structures:: sync:: { join , par_for_each} ;
106106use rustc_errors:: struct_span_err;
107107use rustc_hir as hir;
108108use rustc_hir:: def_id:: { DefId , LOCAL_CRATE } ;
@@ -345,14 +345,19 @@ pub fn check_crate(tcx: TyCtxt<'_>) -> Result<(), ErrorReported> {
345345 tcx. sess . time ( "wf_checking" , || check:: check_wf_new ( tcx) ) ;
346346 } ) ?;
347347
348- tcx. sess . time ( "item_types_checking" , || {
349- par_for_each ( & tcx. hir ( ) . krate ( ) . modules , |( & module, _) | {
350- tcx. ensure ( ) . check_mod_item_types ( tcx. hir ( ) . local_def_id ( module) ) ;
351- } ) ;
348+ tcx. sess . time ( "item_types_and_item_bodies_checking" , || {
349+ join (
350+ || {
351+ tcx. sess . time ( "item_types_checking" , || {
352+ par_for_each ( & tcx. hir ( ) . krate ( ) . modules , |( & module, _) | {
353+ tcx. ensure ( ) . check_mod_item_types ( tcx. hir ( ) . local_def_id ( module) ) ;
354+ } ) ;
355+ } )
356+ } ,
357+ || tcx. sess . time ( "item_bodies_checking" , || tcx. typeck_item_bodies ( LOCAL_CRATE ) ) ,
358+ )
352359 } ) ;
353360
354- tcx. sess . time ( "item_bodies_checking" , || tcx. typeck_item_bodies ( LOCAL_CRATE ) ) ;
355-
356361 check_unused:: check_crate ( tcx) ;
357362 check_for_entry_fn ( tcx) ;
358363
0 commit comments