From f2ccc54468348af96d6167da5971749ef0f4ab5e Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Tue, 11 Jun 2019 17:25:55 +0300 Subject: use Source for TypeAlias --- crates/ra_ide_api/src/completion/presentation.rs | 5 ++--- crates/ra_ide_api/src/display/navigation_target.rs | 20 ++------------------ crates/ra_ide_api/src/hover.rs | 18 ++++++------------ 3 files changed, 10 insertions(+), 33 deletions(-) (limited to 'crates/ra_ide_api/src') diff --git a/crates/ra_ide_api/src/completion/presentation.rs b/crates/ra_ide_api/src/completion/presentation.rs index 8c4d7127b..495899262 100644 --- a/crates/ra_ide_api/src/completion/presentation.rs +++ b/crates/ra_ide_api/src/completion/presentation.rs @@ -141,13 +141,12 @@ impl Completions { } pub(crate) fn add_type_alias(&mut self, ctx: &CompletionContext, type_alias: hir::TypeAlias) { - let (_file_id, type_def) = type_alias.source(ctx.db); + let type_def = type_alias.source(ctx.db).ast; let name = match type_def.name() { Some(name) => name, _ => return, }; - let (_, ast_node) = type_alias.source(ctx.db); - let detail = type_label(&ast_node); + let detail = type_label(&type_def); CompletionItem::new(CompletionKind::Reference, ctx.source_range(), name.text().to_string()) .kind(CompletionItemKind::TypeAlias) diff --git a/crates/ra_ide_api/src/display/navigation_target.rs b/crates/ra_ide_api/src/display/navigation_target.rs index a036a3b36..19a64f300 100644 --- a/crates/ra_ide_api/src/display/navigation_target.rs +++ b/crates/ra_ide_api/src/display/navigation_target.rs @@ -232,15 +232,7 @@ impl NavigationTarget { node.short_label(), ) } - hir::ModuleDef::TypeAlias(e) => { - let (file_id, node) = e.source(db); - NavigationTarget::from_named( - file_id.original_file(db), - &*node, - node.doc_comment_text(), - node.short_label(), - ) - } + hir::ModuleDef::TypeAlias(it) => NavigationTarget::from_def_source(db, it), hir::ModuleDef::BuiltinType(..) => { return None; } @@ -267,15 +259,7 @@ impl NavigationTarget { match impl_item { ImplItem::Method(it) => NavigationTarget::from_function(db, it), ImplItem::Const(it) => NavigationTarget::from_def_source(db, it), - ImplItem::TypeAlias(a) => { - let (file_id, node) = a.source(db); - NavigationTarget::from_named( - file_id.original_file(db), - &*node, - node.doc_comment_text(), - node.short_label(), - ) - } + ImplItem::TypeAlias(it) => NavigationTarget::from_def_source(db, it), } } diff --git a/crates/ra_ide_api/src/hover.rs b/crates/ra_ide_api/src/hover.rs index 0f68cacca..c4826e515 100644 --- a/crates/ra_ide_api/src/hover.rs +++ b/crates/ra_ide_api/src/hover.rs @@ -107,14 +107,11 @@ pub(crate) fn hover(db: &RootDatabase, position: FilePosition) -> Option match it { - hir::ImplItem::Method(it) => res.extend(from_def_source(db, it)), - hir::ImplItem::Const(it) => res.extend(from_def_source(db, it)), - hir::ImplItem::TypeAlias(it) => { - let it = it.source(db).1; - res.extend(hover_text(it.doc_comment_text(), it.short_label())) - } - }, + Some(AssocItem(it)) => res.extend(match it { + hir::ImplItem::Method(it) => from_def_source(db, it), + hir::ImplItem::Const(it) => from_def_source(db, it), + hir::ImplItem::TypeAlias(it) => from_def_source(db, it), + }), Some(Def(it)) => { match it { hir::ModuleDef::Module(it) => { @@ -137,10 +134,7 @@ pub(crate) fn hover(db: &RootDatabase, position: FilePosition) -> Option { - let it = it.source(db).1; - res.extend(hover_text(it.doc_comment_text(), it.short_label())) - } + hir::ModuleDef::TypeAlias(it) => res.extend(from_def_source(db, it)), hir::ModuleDef::BuiltinType(_) => { // FIXME: hover for builtin Type ? } -- cgit v1.2.3