diff --git a/crates/hir_def/src/nameres.rs b/crates/hir_def/src/nameres.rs index b4bd1d2e21..c829b6a64c 100644 --- a/crates/hir_def/src/nameres.rs +++ b/crates/hir_def/src/nameres.rs @@ -202,12 +202,7 @@ pub struct ModuleData { impl Default for ModuleData { fn default() -> Self { - ModuleData { - parent: None, - children: FxHashMap::default(), - scope: ItemScope::default(), - origin: ModuleOrigin::CrateRoot { definition: FileId(!0) }, - } + ModuleData::new(ModuleOrigin::CrateRoot { definition: FileId(!0) }) } } @@ -450,6 +445,15 @@ impl DefMap { } impl ModuleData { + pub(crate) fn new(origin: ModuleOrigin) -> Self { + ModuleData { + parent: None, + children: FxHashMap::default(), + scope: ItemScope::default(), + origin, + } + } + /// Returns a node which defines this module. That is, a file or a `mod foo {}` with items. pub fn definition_source(&self, db: &dyn DefDatabase) -> InFile { self.origin.definition_source(db)