diff --git a/compiler/rustc_resolve/src/lib.rs b/compiler/rustc_resolve/src/lib.rs index e5038f2d7f2b9..879a4dd3983a6 100644 --- a/compiler/rustc_resolve/src/lib.rs +++ b/compiler/rustc_resolve/src/lib.rs @@ -1548,13 +1548,10 @@ impl<'ra> ResolverArenas<'ra> { no_implicit_prelude: bool, ) -> Module<'ra> { let self_decl = match kind { - ModuleKind::Def(def_kind, def_id, _, _) => Some(self.new_def_decl( - Res::Def(def_kind, def_id), - vis, - span, - LocalExpnId::ROOT, - None, - )), + ModuleKind::Def(def_kind, def_id, _, _) => { + let expn_id = expn_id.as_local().unwrap_or(LocalExpnId::ROOT); + Some(self.new_def_decl(Res::Def(def_kind, def_id), vis, span, expn_id, parent)) + } ModuleKind::Block => None, }; Module(Interned::new_unchecked(self.modules.alloc(ModuleData::new(