From 5208c2aa930ae452e062dcdc2563c1bbb67d2e4a Mon Sep 17 00:00:00 2001 From: Florian Diebold Date: Sat, 19 Jan 2019 21:23:26 +0100 Subject: Sketching the resolver API --- crates/ra_hir/src/code_model_api.rs | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) (limited to 'crates/ra_hir/src/code_model_api.rs') 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::{ type_ref::TypeRef, nameres::{ModuleScope, lower::ImportId}, HirDatabase, PersistentHirDatabase, - expr::BodySyntaxMapping, - ty::{InferenceResult}, + expr::{Body, BodySyntaxMapping}, + ty::InferenceResult, adt::{EnumVariantId, StructFieldId, VariantDef}, generics::GenericParams, docs::{Documentation, Docs, docs_from_ast}, module_tree::ModuleId, ids::{FunctionId, StructId, EnumId, AstItemDef, ConstId, StaticId, TraitId, TypeId}, impl_block::ImplId, + resolve::Resolver, }; /// hir::Crate describes a single crate. It's the main interface with which @@ -175,12 +176,18 @@ impl Module { } pub fn resolve_path(&self, db: &impl PersistentHirDatabase, path: &Path) -> PerNs { + // TODO replace by Resolver::resolve_path db.item_map(self.krate).resolve_path(db, *self, path) } pub fn problems(&self, db: &impl HirDatabase) -> Vec<(TreeArc, Problem)> { self.problems_impl(db) } + + #[allow(unused_variables)] + pub fn resolver(&self, db: &impl HirDatabase) -> Resolver { + unimplemented!() + } } impl Docs for Module { @@ -449,6 +456,10 @@ impl Function { db.body_syntax_mapping(*self) } + pub fn body(&self, db: &impl HirDatabase) -> Arc { + db.body_hir(*self) + } + pub fn scopes(&self, db: &impl HirDatabase) -> ScopesWithSyntaxMapping { let scopes = db.expr_scopes(*self); let syntax_mapping = db.body_syntax_mapping(*self); -- cgit v1.2.3