From b8533413cf082f2d942b78af841e3895db252106 Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Sat, 2 Nov 2019 23:11:05 +0300 Subject: Move Source to hir_expand --- crates/ra_hir/src/code_model/src.rs | 2 +- crates/ra_hir/src/lib.rs | 4 ++-- crates/ra_hir_def/src/lib.rs | 17 +---------------- crates/ra_hir_expand/src/lib.rs | 20 +++++++++++++++++++- 4 files changed, 23 insertions(+), 20 deletions(-) (limited to 'crates') diff --git a/crates/ra_hir/src/code_model/src.rs b/crates/ra_hir/src/code_model/src.rs index 0f4c78df7..bd0c3c226 100644 --- a/crates/ra_hir/src/code_model/src.rs +++ b/crates/ra_hir/src/code_model/src.rs @@ -10,7 +10,7 @@ use crate::{ ModuleSource, Static, Struct, StructField, Trait, TypeAlias, Union, }; -pub use hir_def::Source; +pub use hir_expand::Source; pub trait HasSource { type Ast; diff --git a/crates/ra_hir/src/lib.rs b/crates/ra_hir/src/lib.rs index 40f5562b4..0ba17e571 100644 --- a/crates/ra_hir/src/lib.rs +++ b/crates/ra_hir/src/lib.rs @@ -62,7 +62,7 @@ pub use crate::{ adt::VariantDef, code_model::{ docs::{DocDef, Docs, Documentation}, - src::{HasBodySource, HasSource, Source}, + src::{HasBodySource, HasSource}, Adt, AssocItem, Const, ConstData, Container, Crate, CrateDependency, DefWithBody, Enum, EnumVariant, FieldSource, FnData, Function, HasBody, MacroDef, Module, ModuleDef, ModuleSource, Static, Struct, StructField, Trait, TypeAlias, Union, @@ -85,4 +85,4 @@ pub use hir_def::{ path::{Path, PathKind}, type_ref::Mutability, }; -pub use hir_expand::{either::Either, name::Name}; +pub use hir_expand::{either::Either, name::Name, Source}; diff --git a/crates/ra_hir_def/src/lib.rs b/crates/ra_hir_def/src/lib.rs index 76d5f1852..6d66f481d 100644 --- a/crates/ra_hir_def/src/lib.rs +++ b/crates/ra_hir_def/src/lib.rs @@ -19,19 +19,13 @@ pub mod nameres; use std::hash::{Hash, Hasher}; -use hir_expand::{ast_id_map::FileAstId, db::AstDatabase, AstId, HirFileId}; +use hir_expand::{ast_id_map::FileAstId, db::AstDatabase, AstId, HirFileId, Source}; use ra_arena::{impl_arena_id, RawId}; use ra_db::{salsa, CrateId, FileId}; use ra_syntax::{ast, AstNode, SyntaxNode}; use crate::{builtin_type::BuiltinType, db::InternDatabase}; -#[derive(Debug, PartialEq, Eq, Clone, Copy)] -pub struct Source { - pub file_id: HirFileId, - pub ast: T, -} - pub enum ModuleSource { SourceFile(ast::SourceFile), Module(ast::Module), @@ -94,15 +88,6 @@ impl ModuleSource { } } -impl Source { - pub fn map U, U>(self, f: F) -> Source { - Source { file_id: self.file_id, ast: f(self.ast) } - } - pub fn file_syntax(&self, db: &impl AstDatabase) -> SyntaxNode { - db.parse_or_expand(self.file_id).expect("source created from invalid file") - } -} - #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] pub struct ModuleId { pub krate: CrateId, diff --git a/crates/ra_hir_expand/src/lib.rs b/crates/ra_hir_expand/src/lib.rs index 5a0e5a19c..85c2b22ac 100644 --- a/crates/ra_hir_expand/src/lib.rs +++ b/crates/ra_hir_expand/src/lib.rs @@ -13,7 +13,10 @@ pub mod hygiene; use std::hash::{Hash, Hasher}; use ra_db::{salsa, CrateId, FileId}; -use ra_syntax::ast::{self, AstNode}; +use ra_syntax::{ + ast::{self, AstNode}, + SyntaxNode, +}; use crate::ast_id_map::FileAstId; @@ -151,3 +154,18 @@ impl AstId { db.ast_id_map(self.file_id).get(self.file_ast_id).to_node(&root) } } + +#[derive(Debug, PartialEq, Eq, Clone, Copy)] +pub struct Source { + pub file_id: HirFileId, + pub ast: T, +} + +impl Source { + pub fn map U, U>(self, f: F) -> Source { + Source { file_id: self.file_id, ast: f(self.ast) } + } + pub fn file_syntax(&self, db: &impl db::AstDatabase) -> SyntaxNode { + db.parse_or_expand(self.file_id).expect("source created from invalid file") + } +} -- cgit v1.2.3