From 541387564483ee3a42a1969fd048f94e57599ca4 Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Tue, 29 Oct 2019 14:55:39 +0300 Subject: move expansion-related code to a separate crate --- crates/ra_hir/src/source_id.rs | 73 ++---------------------------------------- 1 file changed, 3 insertions(+), 70 deletions(-) (limited to 'crates/ra_hir/src/source_id.rs') diff --git a/crates/ra_hir/src/source_id.rs b/crates/ra_hir/src/source_id.rs index 260b79661..c70245949 100644 --- a/crates/ra_hir/src/source_id.rs +++ b/crates/ra_hir/src/source_id.rs @@ -1,73 +1,6 @@ //! FIXME: write short doc here -use std::{ - hash::{Hash, Hasher}, - sync::Arc, +pub use hir_def::{ + ast_id_map::{AstIdMap, ErasedFileAstId, FileAstId}, + expand::AstId, }; - -pub use hir_def::ast_id_map::{AstIdMap, ErasedFileAstId, FileAstId}; -use ra_syntax::{AstNode, SyntaxNode}; - -use crate::{db::AstDatabase, HirFileId}; - -/// `AstId` points to an AST node in any file. -/// -/// It is stable across reparses, and can be used as salsa key/value. -// FIXME: isn't this just a `Source>` ? -#[derive(Debug)] -pub(crate) struct AstId { - file_id: HirFileId, - file_ast_id: FileAstId, -} - -impl Clone for AstId { - fn clone(&self) -> AstId { - *self - } -} -impl Copy for AstId {} - -impl PartialEq for AstId { - fn eq(&self, other: &Self) -> bool { - (self.file_id, self.file_ast_id) == (other.file_id, other.file_ast_id) - } -} -impl Eq for AstId {} -impl Hash for AstId { - fn hash(&self, hasher: &mut H) { - (self.file_id, self.file_ast_id).hash(hasher); - } -} - -impl AstId { - pub fn new(file_id: HirFileId, file_ast_id: FileAstId) -> AstId { - AstId { file_id, file_ast_id } - } - - pub(crate) fn file_id(&self) -> HirFileId { - self.file_id - } - - pub(crate) fn to_node(&self, db: &impl AstDatabase) -> N { - let syntax_node = db.ast_id_to_node(self.file_id, self.file_ast_id.into()); - N::cast(syntax_node).unwrap() - } -} - -pub(crate) fn ast_id_map_query(db: &impl AstDatabase, file_id: HirFileId) -> Arc { - let map = if let Some(node) = db.parse_or_expand(file_id) { - AstIdMap::from_source(&node) - } else { - AstIdMap::default() - }; - Arc::new(map) -} - -pub(crate) fn file_item_query( - db: &impl AstDatabase, - file_id: HirFileId, - ast_id: ErasedFileAstId, -) -> SyntaxNode { - let node = db.parse_or_expand(file_id).unwrap(); - db.ast_id_map(file_id)[ast_id].to_node(&node) -} -- cgit v1.2.3 From 5b803055b7b690a57f1c08da8f1640139c739e76 Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Tue, 29 Oct 2019 14:59:55 +0300 Subject: rename hir_def -> hir_expand --- crates/ra_hir/src/source_id.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'crates/ra_hir/src/source_id.rs') diff --git a/crates/ra_hir/src/source_id.rs b/crates/ra_hir/src/source_id.rs index c70245949..b37474418 100644 --- a/crates/ra_hir/src/source_id.rs +++ b/crates/ra_hir/src/source_id.rs @@ -1,6 +1,6 @@ //! FIXME: write short doc here -pub use hir_def::{ +pub use hir_expand::{ ast_id_map::{AstIdMap, ErasedFileAstId, FileAstId}, expand::AstId, }; -- cgit v1.2.3 From 6bf7faf315c57dbec6cb3d5a7c7089016603b309 Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Tue, 29 Oct 2019 15:11:42 +0300 Subject: flatten hir_expand --- crates/ra_hir/src/source_id.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'crates/ra_hir/src/source_id.rs') diff --git a/crates/ra_hir/src/source_id.rs b/crates/ra_hir/src/source_id.rs index b37474418..c69a2afeb 100644 --- a/crates/ra_hir/src/source_id.rs +++ b/crates/ra_hir/src/source_id.rs @@ -2,5 +2,5 @@ pub use hir_expand::{ ast_id_map::{AstIdMap, ErasedFileAstId, FileAstId}, - expand::AstId, + AstId, }; -- cgit v1.2.3 From 2a5254c106df41dc53c34508e9f5ba77243b7a51 Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Tue, 29 Oct 2019 15:25:46 +0300 Subject: reduce visibility --- crates/ra_hir/src/source_id.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'crates/ra_hir/src/source_id.rs') diff --git a/crates/ra_hir/src/source_id.rs b/crates/ra_hir/src/source_id.rs index c69a2afeb..463b1d453 100644 --- a/crates/ra_hir/src/source_id.rs +++ b/crates/ra_hir/src/source_id.rs @@ -1,6 +1,6 @@ //! FIXME: write short doc here pub use hir_expand::{ - ast_id_map::{AstIdMap, ErasedFileAstId, FileAstId}, + ast_id_map::{AstIdMap, FileAstId}, AstId, }; -- cgit v1.2.3 From b8b7969bfb261fa86b4c38024f873444145fe7a2 Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Tue, 29 Oct 2019 15:53:25 +0300 Subject: remove empty module --- crates/ra_hir/src/source_id.rs | 6 ------ 1 file changed, 6 deletions(-) delete mode 100644 crates/ra_hir/src/source_id.rs (limited to 'crates/ra_hir/src/source_id.rs') diff --git a/crates/ra_hir/src/source_id.rs b/crates/ra_hir/src/source_id.rs deleted file mode 100644 index 463b1d453..000000000 --- a/crates/ra_hir/src/source_id.rs +++ /dev/null @@ -1,6 +0,0 @@ -//! FIXME: write short doc here - -pub use hir_expand::{ - ast_id_map::{AstIdMap, FileAstId}, - AstId, -}; -- cgit v1.2.3