diff options
Diffstat (limited to 'crates/ide/src/hover.rs')
-rw-r--r-- | crates/ide/src/hover.rs | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/crates/ide/src/hover.rs b/crates/ide/src/hover.rs index 2e477fd0a..5f9edb476 100644 --- a/crates/ide/src/hover.rs +++ b/crates/ide/src/hover.rs | |||
@@ -197,7 +197,7 @@ fn show_implementations_action(db: &RootDatabase, def: Definition) -> Option<Hov | |||
197 | let adt = match def { | 197 | let adt = match def { |
198 | Definition::ModuleDef(ModuleDef::Trait(it)) => return it.try_to_nav(db).map(to_action), | 198 | Definition::ModuleDef(ModuleDef::Trait(it)) => return it.try_to_nav(db).map(to_action), |
199 | Definition::ModuleDef(ModuleDef::Adt(it)) => Some(it), | 199 | Definition::ModuleDef(ModuleDef::Adt(it)) => Some(it), |
200 | Definition::SelfType(it) => it.target_ty(db).as_adt(), | 200 | Definition::SelfType(it) => it.self_ty(db).as_adt(), |
201 | _ => None, | 201 | _ => None, |
202 | }?; | 202 | }?; |
203 | adt.try_to_nav(db).map(to_action) | 203 | adt.try_to_nav(db).map(to_action) |
@@ -320,7 +320,7 @@ fn definition_owner_name(db: &RootDatabase, def: &Definition) -> Option<String> | |||
320 | Definition::ModuleDef(md) => match md { | 320 | Definition::ModuleDef(md) => match md { |
321 | ModuleDef::Function(f) => match f.as_assoc_item(db)?.container(db) { | 321 | ModuleDef::Function(f) => match f.as_assoc_item(db)?.container(db) { |
322 | AssocItemContainer::Trait(t) => Some(t.name(db)), | 322 | AssocItemContainer::Trait(t) => Some(t.name(db)), |
323 | AssocItemContainer::Impl(i) => i.target_ty(db).as_adt().map(|adt| adt.name(db)), | 323 | AssocItemContainer::Impl(i) => i.self_ty(db).as_adt().map(|adt| adt.name(db)), |
324 | }, | 324 | }, |
325 | ModuleDef::Variant(e) => Some(e.parent_enum(db).name(db)), | 325 | ModuleDef::Variant(e) => Some(e.parent_enum(db).name(db)), |
326 | _ => None, | 326 | _ => None, |
@@ -378,7 +378,7 @@ fn hover_for_definition( | |||
378 | }, | 378 | }, |
379 | Definition::Local(it) => hover_for_local(it, db), | 379 | Definition::Local(it) => hover_for_local(it, db), |
380 | Definition::SelfType(impl_def) => { | 380 | Definition::SelfType(impl_def) => { |
381 | impl_def.target_ty(db).as_adt().and_then(|adt| from_hir_fmt(db, adt, mod_path)) | 381 | impl_def.self_ty(db).as_adt().and_then(|adt| from_hir_fmt(db, adt, mod_path)) |
382 | } | 382 | } |
383 | Definition::GenericParam(it) => from_hir_fmt(db, it, None), | 383 | Definition::GenericParam(it) => from_hir_fmt(db, it, None), |
384 | Definition::Label(it) => Some(Markup::fenced_block(&it.name(db))), | 384 | Definition::Label(it) => Some(Markup::fenced_block(&it.name(db))), |
@@ -472,6 +472,7 @@ fn find_std_module(famous_defs: &FamousDefs, name: &str) -> Option<hir::Module> | |||
472 | 472 | ||
473 | fn pick_best(tokens: TokenAtOffset<SyntaxToken>) -> Option<SyntaxToken> { | 473 | fn pick_best(tokens: TokenAtOffset<SyntaxToken>) -> Option<SyntaxToken> { |
474 | return tokens.max_by_key(priority); | 474 | return tokens.max_by_key(priority); |
475 | |||
475 | fn priority(n: &SyntaxToken) -> usize { | 476 | fn priority(n: &SyntaxToken) -> usize { |
476 | match n.kind() { | 477 | match n.kind() { |
477 | IDENT | INT_NUMBER | LIFETIME_IDENT | T![self] | T![super] | T![crate] => 3, | 478 | IDENT | INT_NUMBER | LIFETIME_IDENT | T![self] | T![super] | T![crate] => 3, |