From 0145d06515d990f8b7bf45e261674c265c52d858 Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Tue, 11 Jun 2019 17:47:24 +0300 Subject: use Source for module, part 1 --- crates/ra_ide_api/src/display/navigation_target.rs | 6 +++--- crates/ra_ide_api/src/hover.rs | 3 +-- crates/ra_ide_api/src/references.rs | 6 +++--- 3 files changed, 7 insertions(+), 8 deletions(-) (limited to 'crates/ra_ide_api') diff --git a/crates/ra_ide_api/src/display/navigation_target.rs b/crates/ra_ide_api/src/display/navigation_target.rs index efba122b1..4a92be710 100644 --- a/crates/ra_ide_api/src/display/navigation_target.rs +++ b/crates/ra_ide_api/src/display/navigation_target.rs @@ -129,10 +129,10 @@ impl NavigationTarget { } pub(crate) fn from_module(db: &RootDatabase, module: hir::Module) -> NavigationTarget { - let (file_id, source) = module.definition_source(db); - let file_id = file_id.as_original_file(); + let src = module.definition_source(db); + let file_id = src.file_id.as_original_file(); let name = module.name(db).map(|it| it.to_string().into()).unwrap_or_default(); - match source { + match src.ast { ModuleSource::SourceFile(node) => { NavigationTarget::from_syntax(file_id, name, None, node.syntax(), None, None) } diff --git a/crates/ra_ide_api/src/hover.rs b/crates/ra_ide_api/src/hover.rs index e43c1d8e5..77657607b 100644 --- a/crates/ra_ide_api/src/hover.rs +++ b/crates/ra_ide_api/src/hover.rs @@ -115,8 +115,7 @@ pub(crate) fn hover(db: &RootDatabase, position: FilePosition) -> Option { match it { hir::ModuleDef::Module(it) => { - let it = it.definition_source(db).1; - if let hir::ModuleSource::Module(it) = it { + if let hir::ModuleSource::Module(it) = it.definition_source(db).ast { res.extend(hover_text(it.doc_comment_text(), it.short_label())) } } diff --git a/crates/ra_ide_api/src/references.rs b/crates/ra_ide_api/src/references.rs index a75042b76..12cdc6a6d 100644 --- a/crates/ra_ide_api/src/references.rs +++ b/crates/ra_ide_api/src/references.rs @@ -148,9 +148,9 @@ fn rename_mod( let mut file_system_edits = Vec::new(); if let Some(module) = source_binder::module_from_declaration(db, position.file_id, &ast_module) { - let (file_id, module_source) = module.definition_source(db); - let file_id = file_id.as_original_file(); - match module_source { + let src = module.definition_source(db); + let file_id = src.file_id.as_original_file(); + match src.ast { ModuleSource::SourceFile(..) => { let mod_path: RelativePathBuf = db.file_relative_path(file_id); // mod is defined in path/to/dir/mod.rs -- cgit v1.2.3