@@ -50,6 +50,7 @@ pub fn collect_defs(
5050 file_id : FileId ,
5151 module_id : LocalModuleId ,
5252 crate_id : CrateId ,
53+ parent_module_id : Option < LocalModuleId > ,
5354 context : & mut Context ,
5455 macro_processors : & [ & dyn MacroProcessor ] ,
5556) -> Vec < ( CompilationError , FileId ) > {
@@ -74,10 +75,6 @@ pub fn collect_defs(
7475 macro_processors,
7576 ) ) ;
7677
77- let parent_module_id = context
78- . def_interner
79- . try_module_parent ( & ModuleId { krate : crate_id, local_id : collector. module_id } ) ;
80-
8178 // Then add the imports to defCollector to resolve once all modules in the hierarchy have been resolved
8279 for import in ast. imports {
8380 collector. def_collector . imports . push ( ImportDirective {
@@ -563,6 +560,7 @@ impl<'a> ModCollector<'a> {
563560 macro_processors : & [ & dyn MacroProcessor ] ,
564561 ) -> Vec < ( CompilationError , FileId ) > {
565562 let mut errors: Vec < ( CompilationError , FileId ) > = vec ! [ ] ;
563+ let parent_module_id = Some ( self . module_id ) ;
566564 for submodule in submodules {
567565 match self . push_child_module (
568566 context,
@@ -578,6 +576,7 @@ impl<'a> ModCollector<'a> {
578576 file_id,
579577 child. local_id ,
580578 crate_id,
579+ parent_module_id,
581580 context,
582581 macro_processors,
583582 ) ) ;
@@ -654,6 +653,8 @@ impl<'a> ModCollector<'a> {
654653 parsing_errors. iter ( ) . map ( |e| ( e. clone ( ) . into ( ) , child_file_id) ) . collect :: < Vec < _ > > ( ) ,
655654 ) ;
656655
656+ let parent_module_id = Some ( self . module_id ) ;
657+
657658 // Add module into def collector and get a ModuleId
658659 match self . push_child_module (
659660 context,
@@ -672,6 +673,7 @@ impl<'a> ModCollector<'a> {
672673 child_file_id,
673674 child_mod_id. local_id ,
674675 crate_id,
676+ parent_module_id,
675677 context,
676678 macro_processors,
677679 ) ) ;
0 commit comments