diff options
Diffstat (limited to 'crates/ra_hir_def/src/nameres/raw.rs')
-rw-r--r-- | crates/ra_hir_def/src/nameres/raw.rs | 18 |
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)] |
127 | pub(super) enum ModuleData { | 127 | pub(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 | }); |