diff options
Diffstat (limited to 'crates/ra_hir/src/code_model_api.rs')
-rw-r--r-- | crates/ra_hir/src/code_model_api.rs | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/crates/ra_hir/src/code_model_api.rs b/crates/ra_hir/src/code_model_api.rs index 71123a698..73541a8c3 100644 --- a/crates/ra_hir/src/code_model_api.rs +++ b/crates/ra_hir/src/code_model_api.rs | |||
@@ -9,14 +9,15 @@ use crate::{ | |||
9 | type_ref::TypeRef, | 9 | type_ref::TypeRef, |
10 | nameres::{ModuleScope, lower::ImportId}, | 10 | nameres::{ModuleScope, lower::ImportId}, |
11 | HirDatabase, PersistentHirDatabase, | 11 | HirDatabase, PersistentHirDatabase, |
12 | expr::BodySyntaxMapping, | 12 | expr::{Body, BodySyntaxMapping}, |
13 | ty::{InferenceResult}, | 13 | ty::InferenceResult, |
14 | adt::{EnumVariantId, StructFieldId, VariantDef}, | 14 | adt::{EnumVariantId, StructFieldId, VariantDef}, |
15 | generics::GenericParams, | 15 | generics::GenericParams, |
16 | docs::{Documentation, Docs, docs_from_ast}, | 16 | docs::{Documentation, Docs, docs_from_ast}, |
17 | module_tree::ModuleId, | 17 | module_tree::ModuleId, |
18 | ids::{FunctionId, StructId, EnumId, AstItemDef, ConstId, StaticId, TraitId, TypeId}, | 18 | ids::{FunctionId, StructId, EnumId, AstItemDef, ConstId, StaticId, TraitId, TypeId}, |
19 | impl_block::ImplId, | 19 | impl_block::ImplId, |
20 | resolve::Resolver, | ||
20 | }; | 21 | }; |
21 | 22 | ||
22 | /// hir::Crate describes a single crate. It's the main interface with which | 23 | /// hir::Crate describes a single crate. It's the main interface with which |
@@ -175,12 +176,18 @@ impl Module { | |||
175 | } | 176 | } |
176 | 177 | ||
177 | pub fn resolve_path(&self, db: &impl PersistentHirDatabase, path: &Path) -> PerNs<ModuleDef> { | 178 | pub fn resolve_path(&self, db: &impl PersistentHirDatabase, path: &Path) -> PerNs<ModuleDef> { |
179 | // TODO replace by Resolver::resolve_path | ||
178 | db.item_map(self.krate).resolve_path(db, *self, path) | 180 | db.item_map(self.krate).resolve_path(db, *self, path) |
179 | } | 181 | } |
180 | 182 | ||
181 | pub fn problems(&self, db: &impl HirDatabase) -> Vec<(TreeArc<SyntaxNode>, Problem)> { | 183 | pub fn problems(&self, db: &impl HirDatabase) -> Vec<(TreeArc<SyntaxNode>, Problem)> { |
182 | self.problems_impl(db) | 184 | self.problems_impl(db) |
183 | } | 185 | } |
186 | |||
187 | #[allow(unused_variables)] | ||
188 | pub fn resolver(&self, db: &impl HirDatabase) -> Resolver { | ||
189 | unimplemented!() | ||
190 | } | ||
184 | } | 191 | } |
185 | 192 | ||
186 | impl Docs for Module { | 193 | impl Docs for Module { |
@@ -449,6 +456,10 @@ impl Function { | |||
449 | db.body_syntax_mapping(*self) | 456 | db.body_syntax_mapping(*self) |
450 | } | 457 | } |
451 | 458 | ||
459 | pub fn body(&self, db: &impl HirDatabase) -> Arc<Body> { | ||
460 | db.body_hir(*self) | ||
461 | } | ||
462 | |||
452 | pub fn scopes(&self, db: &impl HirDatabase) -> ScopesWithSyntaxMapping { | 463 | pub fn scopes(&self, db: &impl HirDatabase) -> ScopesWithSyntaxMapping { |
453 | let scopes = db.expr_scopes(*self); | 464 | let scopes = db.expr_scopes(*self); |
454 | let syntax_mapping = db.body_syntax_mapping(*self); | 465 | let syntax_mapping = db.body_syntax_mapping(*self); |