aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_hir/src/code_model.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/ra_hir/src/code_model.rs')
-rw-r--r--crates/ra_hir/src/code_model.rs30
1 files changed, 3 insertions, 27 deletions
diff --git a/crates/ra_hir/src/code_model.rs b/crates/ra_hir/src/code_model.rs
index 1a790b2f3..de1377aa4 100644
--- a/crates/ra_hir/src/code_model.rs
+++ b/crates/ra_hir/src/code_model.rs
@@ -6,7 +6,7 @@ pub(crate) mod docs;
6use std::sync::Arc; 6use std::sync::Arc;
7 7
8use hir_def::{CrateModuleId, ModuleId}; 8use hir_def::{CrateModuleId, ModuleId};
9use ra_db::{CrateId, Edition, FileId}; 9use ra_db::{CrateId, Edition};
10use ra_syntax::ast::{self, NameOwner, TypeAscriptionOwner}; 10use ra_syntax::ast::{self, NameOwner, TypeAscriptionOwner};
11 11
12use crate::{ 12use crate::{
@@ -33,7 +33,7 @@ use crate::{
33 }, 33 },
34 type_ref::Mutability, 34 type_ref::Mutability,
35 type_ref::TypeRef, 35 type_ref::TypeRef,
36 AsName, AstId, Either, HasSource, Name, Ty, 36 AsName, Either, HasSource, Name, Ty,
37}; 37};
38 38
39/// hir::Crate describes a single crate. It's the main interface with which 39/// hir::Crate describes a single crate. It's the main interface with which
@@ -147,31 +147,7 @@ impl_froms!(
147 BuiltinType 147 BuiltinType
148); 148);
149 149
150pub enum ModuleSource { 150pub use hir_def::ModuleSource;
151 SourceFile(ast::SourceFile),
152 Module(ast::Module),
153}
154
155impl ModuleSource {
156 pub(crate) fn new(
157 db: &(impl DefDatabase + AstDatabase),
158 file_id: Option<FileId>,
159 decl_id: Option<AstId<ast::Module>>,
160 ) -> ModuleSource {
161 match (file_id, decl_id) {
162 (Some(file_id), _) => {
163 let source_file = db.parse(file_id).tree();
164 ModuleSource::SourceFile(source_file)
165 }
166 (None, Some(item_id)) => {
167 let module = item_id.to_node(db);
168 assert!(module.item_list().is_some(), "expected inline module");
169 ModuleSource::Module(module)
170 }
171 (None, None) => panic!(),
172 }
173 }
174}
175 151
176impl Module { 152impl Module {
177 pub(crate) fn new(krate: Crate, crate_module_id: CrateModuleId) -> Module { 153 pub(crate) fn new(krate: Crate, crate_module_id: CrateModuleId) -> Module {