From ebb0c377f0ab99a0f5e6d0c776cb9b026b62b0e4 Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Thu, 11 Apr 2019 16:49:35 +0300 Subject: remove resolver from CompletonContext --- crates/ra_hir/src/source_binder.rs | 29 +++++------------------------ 1 file changed, 5 insertions(+), 24 deletions(-) (limited to 'crates/ra_hir') diff --git a/crates/ra_hir/src/source_binder.rs b/crates/ra_hir/src/source_binder.rs index dc9d614c0..560b48303 100644 --- a/crates/ra_hir/src/source_binder.rs +++ b/crates/ra_hir/src/source_binder.rs @@ -11,7 +11,7 @@ use ra_db::{FileId, FilePosition}; use ra_syntax::{ SyntaxNode, AstPtr, ast::{self, AstNode, NameOwner}, - algo::{find_node_at_offset, find_token_at_offset}, + algo::find_node_at_offset, }; use crate::{ @@ -196,29 +196,6 @@ pub fn trait_from_module( Trait { id: ctx.to_def(trait_def) } } -pub fn resolver_for_position(db: &impl HirDatabase, position: FilePosition) -> Resolver { - let file_id = position.file_id; - let file = db.parse(file_id); - find_token_at_offset(file.syntax(), position.offset) - .find_map(|token| { - token.parent().ancestors().find_map(|node| { - if ast::Expr::cast(node).is_some() || ast::Block::cast(node).is_some() { - if let Some(func) = function_from_child_node(db, file_id, node) { - let scopes = func.scopes(db); - let scope = scopes.scope_for_offset(position.offset); - Some(expr::resolver_for_scope(func.body(db), db, scope)) - } else { - // FIXME const/static/array length - None - } - } else { - try_get_resolver_for_node(db, file_id, node) - } - }) - }) - .unwrap_or_default() -} - fn resolver_for_node(db: &impl HirDatabase, file_id: FileId, node: &SyntaxNode) -> Resolver { node.ancestors() .find_map(|node| { @@ -305,6 +282,10 @@ impl SourceAnalyzer { } } + pub fn resolver(&self) -> &Resolver { + &self.resolver + } + pub fn type_of(&self, _db: &impl HirDatabase, expr: &ast::Expr) -> Option { let expr_id = self.body_source_map.as_ref()?.node_expr(expr)?; Some(self.infer.as_ref()?[expr_id].clone()) -- cgit v1.2.3