@@ -508,11 +508,7 @@ impl EmbargoVisitor<'tcx> {
508508 }
509509 }
510510
511- fn update_macro_reachable_mod (
512- & mut self ,
513- reachable_mod : hir:: HirId ,
514- defining_mod : DefId ,
515- ) {
511+ fn update_macro_reachable_mod ( & mut self , reachable_mod : hir:: HirId , defining_mod : DefId ) {
516512 let module_def_id = self . tcx . hir ( ) . local_def_id ( reachable_mod) ;
517513 let module = self . tcx . hir ( ) . get_module ( module_def_id) . 0 ;
518514 for item_id in & module. item_ids {
@@ -524,19 +520,13 @@ impl EmbargoVisitor<'tcx> {
524520 self . update_macro_reachable_def ( hir_id, def_kind, vis, defining_mod) ;
525521 }
526522 }
527-
528523 if let Some ( exports) = self . tcx . module_exports ( module_def_id) {
529524 for export in exports {
530525 if export. vis . is_accessible_from ( defining_mod, self . tcx ) {
531526 if let Res :: Def ( def_kind, def_id) = export. res {
532527 let vis = def_id_visibility ( self . tcx , def_id) . 0 ;
533528 if let Some ( hir_id) = self . tcx . hir ( ) . as_local_hir_id ( def_id) {
534- self . update_macro_reachable_def (
535- hir_id,
536- def_kind,
537- vis,
538- defining_mod,
539- ) ;
529+ self . update_macro_reachable_def ( hir_id, def_kind, vis, defining_mod) ;
540530 }
541531 }
542532 }
@@ -892,10 +882,14 @@ impl Visitor<'tcx> for EmbargoVisitor<'tcx> {
892882 self . tcx . hir ( ) . local_def_id ( md. hir_id )
893883 ) . unwrap ( ) ;
894884 let mut module_id = self . tcx . hir ( ) . as_local_hir_id ( macro_module_def_id) . unwrap ( ) ;
885+ if !self . tcx . hir ( ) . is_hir_id_module ( module_id) {
886+ // `module_id` doesn't correspond to a `mod`, return early (#63164).
887+ return ;
888+ }
895889 let level = if md. vis . node . is_pub ( ) { self . get ( module_id) } else { None } ;
896890 let new_level = self . update ( md. hir_id , level) ;
897891 if new_level. is_none ( ) {
898- return
892+ return ;
899893 }
900894
901895 loop {
0 commit comments