aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_hir/src/source_binder.rs
diff options
context:
space:
mode:
authorAleksey Kladov <[email protected]>2019-04-22 13:56:28 +0100
committerAleksey Kladov <[email protected]>2019-04-22 13:56:28 +0100
commite01052d1f0b8bf70a418a10538528923c5f400d5 (patch)
tree18ed1c151e7782b791214df4c4a2966c617ae1c6 /crates/ra_hir/src/source_binder.rs
parent200032852be0c66b978c875a8edf0eca1f08b901 (diff)
move auto-imoprter into IDE
auto-import is purely an IDE concern, so it should be done outside of HIR
Diffstat (limited to 'crates/ra_hir/src/source_binder.rs')
-rw-r--r--crates/ra_hir/src/source_binder.rs15
1 files changed, 1 insertions, 14 deletions
diff --git a/crates/ra_hir/src/source_binder.rs b/crates/ra_hir/src/source_binder.rs
index 42399622a..2959e3eca 100644
--- a/crates/ra_hir/src/source_binder.rs
+++ b/crates/ra_hir/src/source_binder.rs
@@ -14,12 +14,11 @@ use ra_syntax::{
14 ast::{self, AstNode, NameOwner}, 14 ast::{self, AstNode, NameOwner},
15 algo::find_node_at_offset, 15 algo::find_node_at_offset,
16 SyntaxKind::*, 16 SyntaxKind::*,
17 SmolStr,
18}; 17};
19 18
20use crate::{ 19use crate::{
21 HirDatabase, Function, Struct, Enum, Const, Static, Either, DefWithBody, PerNs, Name, 20 HirDatabase, Function, Struct, Enum, Const, Static, Either, DefWithBody, PerNs, Name,
22 AsName, Module, HirFileId, Crate, Trait, Resolver, Ty, ImportResolver, 21 AsName, Module, HirFileId, Crate, Trait, Resolver, Ty,
23 expr::{BodySourceMap, scope::{ScopeId, ExprScopes}}, 22 expr::{BodySourceMap, scope::{ScopeId, ExprScopes}},
24 ids::LocationCtx, 23 ids::LocationCtx,
25 expr, AstId, 24 expr, AstId,
@@ -171,7 +170,6 @@ fn def_with_body_from_child_node(
171#[derive(Debug)] 170#[derive(Debug)]
172pub struct SourceAnalyzer { 171pub struct SourceAnalyzer {
173 resolver: Resolver, 172 resolver: Resolver,
174 import_resolver: ImportResolver,
175 body_source_map: Option<Arc<BodySourceMap>>, 173 body_source_map: Option<Arc<BodySourceMap>>,
176 infer: Option<Arc<crate::ty::InferenceResult>>, 174 infer: Option<Arc<crate::ty::InferenceResult>>,
177 scopes: Option<Arc<crate::expr::ExprScopes>>, 175 scopes: Option<Arc<crate::expr::ExprScopes>>,
@@ -219,7 +217,6 @@ impl SourceAnalyzer {
219 offset: Option<TextUnit>, 217 offset: Option<TextUnit>,
220 ) -> SourceAnalyzer { 218 ) -> SourceAnalyzer {
221 let def_with_body = def_with_body_from_child_node(db, file_id, node); 219 let def_with_body = def_with_body_from_child_node(db, file_id, node);
222 let import_resolver = ImportResolver::new();
223 if let Some(def) = def_with_body { 220 if let Some(def) = def_with_body {
224 let source_map = def.body_source_map(db); 221 let source_map = def.body_source_map(db);
225 let scopes = db.expr_scopes(def); 222 let scopes = db.expr_scopes(def);
@@ -230,7 +227,6 @@ impl SourceAnalyzer {
230 let resolver = expr::resolver_for_scope(def.body(db), db, scope); 227 let resolver = expr::resolver_for_scope(def.body(db), db, scope);
231 SourceAnalyzer { 228 SourceAnalyzer {
232 resolver, 229 resolver,
233 import_resolver,
234 body_source_map: Some(source_map), 230 body_source_map: Some(source_map),
235 infer: Some(def.infer(db)), 231 infer: Some(def.infer(db)),
236 scopes: Some(scopes), 232 scopes: Some(scopes),
@@ -241,7 +237,6 @@ impl SourceAnalyzer {
241 .ancestors() 237 .ancestors()
242 .find_map(|node| try_get_resolver_for_node(db, file_id, node)) 238 .find_map(|node| try_get_resolver_for_node(db, file_id, node))
243 .unwrap_or_default(), 239 .unwrap_or_default(),
244 import_resolver,
245 body_source_map: None, 240 body_source_map: None,
246 infer: None, 241 infer: None,
247 scopes: None, 242 scopes: None,
@@ -328,14 +323,6 @@ impl SourceAnalyzer {
328 self.resolver.all_names(db) 323 self.resolver.all_names(db)
329 } 324 }
330 325
331 pub fn all_import_names(
332 &self,
333 db: &impl HirDatabase,
334 name: &Name,
335 ) -> FxHashMap<SmolStr, Vec<SmolStr>> {
336 self.import_resolver.all_names(db, name)
337 }
338
339 pub fn find_all_refs(&self, pat: &ast::BindPat) -> Vec<ReferenceDescriptor> { 326 pub fn find_all_refs(&self, pat: &ast::BindPat) -> Vec<ReferenceDescriptor> {
340 // FIXME: at least, this should work with any DefWithBody, but ideally 327 // FIXME: at least, this should work with any DefWithBody, but ideally
341 // this should be hir-based altogether 328 // this should be hir-based altogether