aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_hir_def/src/nameres/raw.rs
diff options
context:
space:
mode:
authorAleksey Kladov <[email protected]>2019-12-21 16:34:28 +0000
committerAleksey Kladov <[email protected]>2019-12-21 16:34:28 +0000
commit1a8f2aa024c6f1a5e9704c9cbd2e5a020debe2c2 (patch)
tree2d432efaf61acd53adc8cf0f78f4ed60f1fa758c /crates/ra_hir_def/src/nameres/raw.rs
parent02f79e37ca1c4a617a46b85bf897dffbf4abed9e (diff)
Move LocalImportId
Diffstat (limited to 'crates/ra_hir_def/src/nameres/raw.rs')
-rw-r--r--crates/ra_hir_def/src/nameres/raw.rs16
1 files changed, 9 insertions, 7 deletions
diff --git a/crates/ra_hir_def/src/nameres/raw.rs b/crates/ra_hir_def/src/nameres/raw.rs
index 73e57f1e5..1b83b2247 100644
--- a/crates/ra_hir_def/src/nameres/raw.rs
+++ b/crates/ra_hir_def/src/nameres/raw.rs
@@ -20,9 +20,7 @@ use ra_syntax::{
20}; 20};
21use test_utils::tested_by; 21use test_utils::tested_by;
22 22
23use crate::{ 23use crate::{attr::Attrs, db::DefDatabase, path::ModPath, FileAstId, HirFileId, InFile};
24 attr::Attrs, db::DefDatabase, path::ModPath, FileAstId, HirFileId, InFile, LocalImportId,
25};
26 24
27/// `RawItems` is a set of top-level items in a file (except for impls). 25/// `RawItems` is a set of top-level items in a file (except for impls).
28/// 26///
@@ -31,7 +29,7 @@ use crate::{
31#[derive(Debug, Default, PartialEq, Eq)] 29#[derive(Debug, Default, PartialEq, Eq)]
32pub struct RawItems { 30pub struct RawItems {
33 modules: Arena<Module, ModuleData>, 31 modules: Arena<Module, ModuleData>,
34 imports: Arena<LocalImportId, ImportData>, 32 imports: Arena<Import, ImportData>,
35 defs: Arena<Def, DefData>, 33 defs: Arena<Def, DefData>,
36 macros: Arena<Macro, MacroData>, 34 macros: Arena<Macro, MacroData>,
37 impls: Arena<Impl, ImplData>, 35 impls: Arena<Impl, ImplData>,
@@ -73,9 +71,9 @@ impl Index<Module> for RawItems {
73 } 71 }
74} 72}
75 73
76impl Index<LocalImportId> for RawItems { 74impl Index<Import> for RawItems {
77 type Output = ImportData; 75 type Output = ImportData;
78 fn index(&self, idx: LocalImportId) -> &ImportData { 76 fn index(&self, idx: Import) -> &ImportData {
79 &self.imports[idx] 77 &self.imports[idx]
80 } 78 }
81} 79}
@@ -110,7 +108,7 @@ pub(super) struct RawItem {
110#[derive(Debug, PartialEq, Eq, Clone, Copy)] 108#[derive(Debug, PartialEq, Eq, Clone, Copy)]
111pub(super) enum RawItemKind { 109pub(super) enum RawItemKind {
112 Module(Module), 110 Module(Module),
113 Import(LocalImportId), 111 Import(Import),
114 Def(Def), 112 Def(Def),
115 Macro(Macro), 113 Macro(Macro),
116 Impl(Impl), 114 Impl(Impl),
@@ -126,6 +124,10 @@ pub(super) enum ModuleData {
126 Definition { name: Name, ast_id: FileAstId<ast::Module>, items: Vec<RawItem> }, 124 Definition { name: Name, ast_id: FileAstId<ast::Module>, items: Vec<RawItem> },
127} 125}
128 126
127#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
128pub(crate) struct Import(RawId);
129impl_arena_id!(Import);
130
129#[derive(Debug, Clone, PartialEq, Eq)] 131#[derive(Debug, Clone, PartialEq, Eq)]
130pub struct ImportData { 132pub struct ImportData {
131 pub(super) path: ModPath, 133 pub(super) path: ModPath,