use Source for Trait

This commit is contained in:
Aleksey Kladov 2019-06-11 17:34:01 +03:00
parent 5e6213b516
commit f411c2988d
7 changed files with 28 additions and 39 deletions

View file

@ -214,24 +214,8 @@ impl NavigationTarget {
hir::ModuleDef::Union(it) => NavigationTarget::from_adt_def(db, it.into()),
hir::ModuleDef::Const(it) => NavigationTarget::from_def_source(db, it),
hir::ModuleDef::Static(it) => NavigationTarget::from_def_source(db, it),
hir::ModuleDef::EnumVariant(var) => {
let src = var.source(db);
NavigationTarget::from_named(
src.file_id.original_file(db),
&*src.ast,
src.ast.doc_comment_text(),
src.ast.short_label(),
)
}
hir::ModuleDef::Trait(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::EnumVariant(it) => NavigationTarget::from_def_source(db, it),
hir::ModuleDef::Trait(it) => NavigationTarget::from_def_source(db, it),
hir::ModuleDef::TypeAlias(it) => NavigationTarget::from_def_source(db, it),
hir::ModuleDef::BuiltinType(..) => {
return None;

View file

@ -124,16 +124,10 @@ pub(crate) fn hover(db: &RootDatabase, position: FilePosition) -> Option<RangeIn
hir::ModuleDef::Struct(it) => res.extend(from_def_source(db, it)),
hir::ModuleDef::Union(it) => res.extend(from_def_source(db, it)),
hir::ModuleDef::Enum(it) => res.extend(from_def_source(db, it)),
hir::ModuleDef::EnumVariant(it) => {
let src = it.source(db);
res.extend(hover_text(src.ast.doc_comment_text(), src.ast.short_label()))
}
hir::ModuleDef::EnumVariant(it) => res.extend(from_def_source(db, it)),
hir::ModuleDef::Const(it) => res.extend(from_def_source(db, it)),
hir::ModuleDef::Static(it) => res.extend(from_def_source(db, it)),
hir::ModuleDef::Trait(it) => {
let it = it.source(db).1;
res.extend(hover_text(it.doc_comment_text(), it.short_label()))
}
hir::ModuleDef::Trait(it) => res.extend(from_def_source(db, it)),
hir::ModuleDef::TypeAlias(it) => res.extend(from_def_source(db, it)),
hir::ModuleDef::BuiltinType(_) => {
// FIXME: hover for builtin Type ?