diff options
Diffstat (limited to 'crates/ra_hir/src/nameres/lower.rs')
-rw-r--r-- | crates/ra_hir/src/nameres/lower.rs | 40 |
1 files changed, 0 insertions, 40 deletions
diff --git a/crates/ra_hir/src/nameres/lower.rs b/crates/ra_hir/src/nameres/lower.rs deleted file mode 100644 index d4c7f2481..000000000 --- a/crates/ra_hir/src/nameres/lower.rs +++ /dev/null | |||
@@ -1,40 +0,0 @@ | |||
1 | use ra_syntax::{ | ||
2 | AstNode, SourceFile, TreeArc, AstPtr, | ||
3 | ast, | ||
4 | }; | ||
5 | use ra_arena::{RawId, impl_arena_id, map::ArenaMap}; | ||
6 | |||
7 | use crate::{Path, ModuleSource, Name}; | ||
8 | |||
9 | #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] | ||
10 | pub struct ImportId(RawId); | ||
11 | impl_arena_id!(ImportId); | ||
12 | |||
13 | #[derive(Debug, Clone, PartialEq, Eq)] | ||
14 | pub struct ImportData { | ||
15 | pub(super) path: Path, | ||
16 | pub(super) alias: Option<Name>, | ||
17 | pub(super) is_glob: bool, | ||
18 | pub(super) is_prelude: bool, | ||
19 | pub(super) is_extern_crate: bool, | ||
20 | } | ||
21 | |||
22 | #[derive(Debug, Default, PartialEq, Eq)] | ||
23 | pub struct ImportSourceMap { | ||
24 | map: ArenaMap<ImportId, AstPtr<ast::PathSegment>>, | ||
25 | } | ||
26 | |||
27 | impl ImportSourceMap { | ||
28 | pub(crate) fn insert(&mut self, import: ImportId, segment: &ast::PathSegment) { | ||
29 | self.map.insert(import, AstPtr::new(segment)) | ||
30 | } | ||
31 | |||
32 | pub fn get(&self, source: &ModuleSource, import: ImportId) -> TreeArc<ast::PathSegment> { | ||
33 | let file = match source { | ||
34 | ModuleSource::SourceFile(file) => &*file, | ||
35 | ModuleSource::Module(m) => m.syntax().ancestors().find_map(SourceFile::cast).unwrap(), | ||
36 | }; | ||
37 | |||
38 | self.map[import].to_node(file).to_owned() | ||
39 | } | ||
40 | } | ||