aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_hir_def/src/nameres/raw.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/ra_hir_def/src/nameres/raw.rs')
-rw-r--r--crates/ra_hir_def/src/nameres/raw.rs18
1 files changed, 15 insertions, 3 deletions
diff --git a/crates/ra_hir_def/src/nameres/raw.rs b/crates/ra_hir_def/src/nameres/raw.rs
index 9dabb5b6d..59f79f7cd 100644
--- a/crates/ra_hir_def/src/nameres/raw.rs
+++ b/crates/ra_hir_def/src/nameres/raw.rs
@@ -125,8 +125,17 @@ impl_arena_id!(Module);
125 125
126#[derive(Debug, PartialEq, Eq)] 126#[derive(Debug, PartialEq, Eq)]
127pub(super) enum ModuleData { 127pub(super) enum ModuleData {
128 Declaration { name: Name, ast_id: FileAstId<ast::Module> }, 128 Declaration {
129 Definition { name: Name, ast_id: FileAstId<ast::Module>, items: Vec<RawItem> }, 129 name: Name,
130 visibility: Visibility,
131 ast_id: FileAstId<ast::Module>,
132 },
133 Definition {
134 name: Name,
135 visibility: Visibility,
136 ast_id: FileAstId<ast::Module>,
137 items: Vec<RawItem>,
138 },
130} 139}
131 140
132#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] 141#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
@@ -283,10 +292,12 @@ impl RawItemsCollector {
283 None => return, 292 None => return,
284 }; 293 };
285 let attrs = self.parse_attrs(&module); 294 let attrs = self.parse_attrs(&module);
295 let visibility = Visibility::from_ast_with_hygiene(module.visibility(), &self.hygiene);
286 296
287 let ast_id = self.source_ast_id_map.ast_id(&module); 297 let ast_id = self.source_ast_id_map.ast_id(&module);
288 if module.has_semi() { 298 if module.has_semi() {
289 let item = self.raw_items.modules.alloc(ModuleData::Declaration { name, ast_id }); 299 let item =
300 self.raw_items.modules.alloc(ModuleData::Declaration { name, visibility, ast_id });
290 self.push_item(current_module, attrs, RawItemKind::Module(item)); 301 self.push_item(current_module, attrs, RawItemKind::Module(item));
291 return; 302 return;
292 } 303 }
@@ -294,6 +305,7 @@ impl RawItemsCollector {
294 if let Some(item_list) = module.item_list() { 305 if let Some(item_list) = module.item_list() {
295 let item = self.raw_items.modules.alloc(ModuleData::Definition { 306 let item = self.raw_items.modules.alloc(ModuleData::Definition {
296 name, 307 name,
308 visibility,
297 ast_id, 309 ast_id,
298 items: Vec::new(), 310 items: Vec::new(),
299 }); 311 });