From 2867c40925e8f7b440ff50a421a2d3726b9ff334 Mon Sep 17 00:00:00 2001 From: Ekaterina Babshukova Date: Mon, 16 Sep 2019 13:48:54 +0300 Subject: introduce FromSource trait --- crates/ra_ide_api/src/parent_module.rs | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) (limited to 'crates/ra_ide_api/src/parent_module.rs') diff --git a/crates/ra_ide_api/src/parent_module.rs b/crates/ra_ide_api/src/parent_module.rs index 7d5f9ea2c..3668da8d7 100644 --- a/crates/ra_ide_api/src/parent_module.rs +++ b/crates/ra_ide_api/src/parent_module.rs @@ -5,7 +5,11 @@ use crate::{db::RootDatabase, NavigationTarget}; /// This returns `Vec` because a module may be included from several places. We /// don't handle this case yet though, so the Vec has length at most one. pub(crate) fn parent_module(db: &RootDatabase, position: FilePosition) -> Vec { - let module = match hir::source_binder::module_from_position(db, position) { + let src = hir::ModuleSource::from_position(db, position); + let module = match hir::Module::from_definition( + db, + hir::Source { file_id: position.file_id.into(), ast: src }, + ) { None => return Vec::new(), Some(it) => it, }; @@ -15,10 +19,12 @@ pub(crate) fn parent_module(db: &RootDatabase, position: FilePosition) -> Vec Vec { - let module = match hir::source_binder::module_from_file_id(db, file_id) { - Some(it) => it, - None => return Vec::new(), - }; + let src = hir::ModuleSource::from_file_id(db, file_id); + let module = + match hir::Module::from_definition(db, hir::Source { file_id: file_id.into(), ast: src }) { + Some(it) => it, + None => return Vec::new(), + }; let krate = match module.krate(db) { Some(it) => it, None => return Vec::new(), -- cgit v1.2.3