From 0f2f3a21e7e624f920d182869896347af309e909 Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Fri, 25 Jan 2019 01:31:32 +0300 Subject: Migrate trait & type to new ids --- crates/ra_ide_api/src/completion/complete_path.rs | 7 +-- .../ra_ide_api/src/completion/completion_item.rs | 8 ++- crates/ra_ide_api/src/navigation_target.rs | 59 ++++++++++------------ 3 files changed, 32 insertions(+), 42 deletions(-) (limited to 'crates/ra_ide_api/src') diff --git a/crates/ra_ide_api/src/completion/complete_path.rs b/crates/ra_ide_api/src/completion/complete_path.rs index bd5484516..e72586e2e 100644 --- a/crates/ra_ide_api/src/completion/complete_path.rs +++ b/crates/ra_ide_api/src/completion/complete_path.rs @@ -40,12 +40,7 @@ pub(super) fn complete_path(acc: &mut Completions, ctx: &CompletionContext) { .add_to(acc) }); } - hir::ModuleDef::Function(_) - | hir::ModuleDef::Struct(_) - | hir::ModuleDef::Def(_) - | hir::ModuleDef::Const(_) - | hir::ModuleDef::Static(_) - | hir::ModuleDef::EnumVariant(_) => return, + _ => return, }; } diff --git a/crates/ra_ide_api/src/completion/completion_item.rs b/crates/ra_ide_api/src/completion/completion_item.rs index 2f8ec41d2..4e679281c 100644 --- a/crates/ra_ide_api/src/completion/completion_item.rs +++ b/crates/ra_ide_api/src/completion/completion_item.rs @@ -225,11 +225,9 @@ impl Builder { hir::ModuleDef::EnumVariant(it) => (CompletionItemKind::EnumVariant, it.docs(ctx.db)), hir::ModuleDef::Const(it) => (CompletionItemKind::Const, it.docs(ctx.db)), hir::ModuleDef::Static(it) => (CompletionItemKind::Static, it.docs(ctx.db)), - hir::ModuleDef::Def(def_id) => match def_id.resolve(ctx.db) { - hir::Def::Trait(it) => (CompletionItemKind::Trait, it.docs(ctx.db)), - hir::Def::Type(it) => (CompletionItemKind::TypeAlias, it.docs(ctx.db)), - _ => return self, - }, + hir::ModuleDef::Trait(it) => (CompletionItemKind::Trait, it.docs(ctx.db)), + hir::ModuleDef::Type(it) => (CompletionItemKind::TypeAlias, it.docs(ctx.db)), + hir::ModuleDef::Def(_) => return self, }; self.kind = Some(kind); self.documentation = docs; diff --git a/crates/ra_ide_api/src/navigation_target.rs b/crates/ra_ide_api/src/navigation_target.rs index 8406fee31..2e11d2de3 100644 --- a/crates/ra_ide_api/src/navigation_target.rs +++ b/crates/ra_ide_api/src/navigation_target.rs @@ -3,7 +3,7 @@ use ra_syntax::{ SyntaxNode, AstNode, SmolStr, TextRange, ast, SyntaxKind::{self, NAME}, }; -use hir::{Def, ModuleSource}; +use hir::{ModuleSource}; use crate::{FileSymbol, db::RootDatabase}; @@ -106,63 +106,60 @@ impl NavigationTarget { db: &RootDatabase, module_def: hir::ModuleDef, ) -> Option { - let def = match module_def { - hir::ModuleDef::Def(def_id) => def_id.resolve(db), - hir::ModuleDef::Module(module) => { - return Some(NavigationTarget::from_module(db, module)); - } - hir::ModuleDef::Function(func) => { - return Some(NavigationTarget::from_function(db, func)); - } + match module_def { + hir::ModuleDef::Def(_) => return None, + hir::ModuleDef::Module(module) => Some(NavigationTarget::from_module(db, module)), + hir::ModuleDef::Function(func) => Some(NavigationTarget::from_function(db, func)), hir::ModuleDef::Struct(s) => { let (file_id, node) = s.source(db); - return Some(NavigationTarget::from_named( + Some(NavigationTarget::from_named( file_id.original_file(db), &*node, - )); + )) } hir::ModuleDef::Const(s) => { let (file_id, node) = s.source(db); - return Some(NavigationTarget::from_named( + Some(NavigationTarget::from_named( file_id.original_file(db), &*node, - )); + )) } hir::ModuleDef::Static(s) => { let (file_id, node) = s.source(db); - return Some(NavigationTarget::from_named( + Some(NavigationTarget::from_named( file_id.original_file(db), &*node, - )); + )) } hir::ModuleDef::Enum(e) => { let (file_id, node) = e.source(db); - return Some(NavigationTarget::from_named( + Some(NavigationTarget::from_named( file_id.original_file(db), &*node, - )); + )) } hir::ModuleDef::EnumVariant(var) => { let (file_id, node) = var.source(db); - return Some(NavigationTarget::from_named( + Some(NavigationTarget::from_named( file_id.original_file(db), &*node, - )); + )) } - }; - - let res = match def { - Def::Trait(f) => { - let (file_id, node) = f.source(db); - NavigationTarget::from_named(file_id.original_file(db), &*node) + hir::ModuleDef::Trait(e) => { + let (file_id, node) = e.source(db); + Some(NavigationTarget::from_named( + file_id.original_file(db), + &*node, + )) } - Def::Type(f) => { - let (file_id, node) = f.source(db); - NavigationTarget::from_named(file_id.original_file(db), &*node) + hir::ModuleDef::Type(e) => { + let (file_id, node) = e.source(db); + Some(NavigationTarget::from_named( + file_id.original_file(db), + &*node, + )) } - Def::Item => return None, - }; - Some(res) + } } #[cfg(test)] -- cgit v1.2.3