aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_hir/src/nameres/raw.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/ra_hir/src/nameres/raw.rs')
-rw-r--r--crates/ra_hir/src/nameres/raw.rs19
1 files changed, 10 insertions, 9 deletions
diff --git a/crates/ra_hir/src/nameres/raw.rs b/crates/ra_hir/src/nameres/raw.rs
index bd32b264b..1b4dcbb7a 100644
--- a/crates/ra_hir/src/nameres/raw.rs
+++ b/crates/ra_hir/src/nameres/raw.rs
@@ -1,7 +1,4 @@
1use std::{ 1use std::{sync::Arc, ops::Index};
2 sync::Arc,
3 ops::Index,
4};
5 2
6use test_utils::tested_by; 3use test_utils::tested_by;
7use ra_arena::{Arena, impl_arena_id, RawId, map::ArenaMap}; 4use ra_arena::{Arena, impl_arena_id, RawId, map::ArenaMap};
@@ -10,10 +7,7 @@ use ra_syntax::{
10 ast::{self, NameOwner, AttrsOwner}, 7 ast::{self, NameOwner, AttrsOwner},
11}; 8};
12 9
13use crate::{ 10use crate::{DefDatabase, Name, AsName, Path, HirFileId, ModuleSource, AstIdMap, FileAstId, Either};
14 DefDatabase, Name, AsName, Path, HirFileId, ModuleSource,
15 AstIdMap, FileAstId, Either,
16};
17 11
18/// `RawItems` is a set of top-level items in a file (except for impls). 12/// `RawItems` is a set of top-level items in a file (except for impls).
19/// 13///
@@ -161,6 +155,7 @@ pub(super) struct DefData {
161pub(super) enum DefKind { 155pub(super) enum DefKind {
162 Function(FileAstId<ast::FnDef>), 156 Function(FileAstId<ast::FnDef>),
163 Struct(FileAstId<ast::StructDef>), 157 Struct(FileAstId<ast::StructDef>),
158 Union(FileAstId<ast::StructDef>),
164 Enum(FileAstId<ast::EnumDef>), 159 Enum(FileAstId<ast::EnumDef>),
165 Const(FileAstId<ast::ConstDef>), 160 Const(FileAstId<ast::ConstDef>),
166 Static(FileAstId<ast::StaticDef>), 161 Static(FileAstId<ast::StaticDef>),
@@ -215,7 +210,13 @@ impl RawItemsCollector {
215 return; 210 return;
216 } 211 }
217 ast::ModuleItemKind::StructDef(it) => { 212 ast::ModuleItemKind::StructDef(it) => {
218 (DefKind::Struct(self.source_ast_id_map.ast_id(it)), it.name()) 213 let id = self.source_ast_id_map.ast_id(it);
214 let name = it.name();
215 if it.is_union() {
216 (DefKind::Union(id), name)
217 } else {
218 (DefKind::Struct(id), name)
219 }
219 } 220 }
220 ast::ModuleItemKind::EnumDef(it) => { 221 ast::ModuleItemKind::EnumDef(it) => {
221 (DefKind::Enum(self.source_ast_id_map.ast_id(it)), it.name()) 222 (DefKind::Enum(self.source_ast_id_map.ast_id(it)), it.name())