Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/ide/src/moniker.rs')
-rw-r--r--crates/ide/src/moniker.rs24
1 files changed, 9 insertions, 15 deletions
diff --git a/crates/ide/src/moniker.rs b/crates/ide/src/moniker.rs
index 66ea49a98a..5754b4fa82 100644
--- a/crates/ide/src/moniker.rs
+++ b/crates/ide/src/moniker.rs
@@ -11,7 +11,6 @@ use ide_db::{
FilePosition, RootDatabase,
};
use itertools::Itertools;
-use span::Edition;
use syntax::{AstNode, SyntaxKind::*, T};
use crate::{doc_links::token_as_doc_comment, parent_module::crates_for, RangeInfo};
@@ -184,11 +183,11 @@ pub(crate) fn def_to_kind(db: &RootDatabase, def: Definition) -> SymbolInformati
match def {
Definition::Macro(it) => match it.kind(db) {
- MacroKind::Declarative => Macro,
- MacroKind::Derive => Attribute,
- MacroKind::BuiltIn => Macro,
- MacroKind::Attr => Attribute,
- MacroKind::ProcMacro => Macro,
+ MacroKind::Derive
+ | MacroKind::DeriveBuiltIn
+ | MacroKind::AttrBuiltIn
+ | MacroKind::Attr => Attribute,
+ MacroKind::Declarative | MacroKind::DeclarativeBuiltIn | MacroKind::ProcMacro => Macro,
},
Definition::Field(..) | Definition::TupleField(..) => Field,
Definition::Module(..) | Definition::Crate(..) => Module,
@@ -305,13 +304,13 @@ fn def_to_non_local_moniker(
if let Some(trait_ref) = impl_.trait_ref(db) {
// Trait impls use the trait type for the 2nd parameter.
reverse_description.push(MonikerDescriptor {
- name: display(db, edition, module, trait_ref),
+ name: display(db, module, trait_ref),
desc: MonikerDescriptorKind::TypeParameter,
});
}
// Both inherent and trait impls use the self type for the first parameter.
reverse_description.push(MonikerDescriptor {
- name: display(db, edition, module, impl_.self_ty(db)),
+ name: display(db, module, impl_.self_ty(db)),
desc: MonikerDescriptorKind::TypeParameter,
});
reverse_description.push(MonikerDescriptor {
@@ -390,17 +389,12 @@ fn def_to_non_local_moniker(
})
}
-fn display<T: HirDisplay>(
- db: &RootDatabase,
- edition: Edition,
- module: hir::Module,
- it: T,
-) -> String {
+fn display<T: HirDisplay>(db: &RootDatabase, module: hir::Module, it: T) -> String {
match it.display_source_code(db, module.into(), true) {
Ok(result) => result,
// Fallback on display variant that always succeeds
Err(_) => {
- let fallback_result = it.display(db, edition).to_string();
+ let fallback_result = it.display(db, module.krate().to_display_target(db)).to_string();
tracing::error!(
display = %fallback_result, "`display_source_code` failed; falling back to using display"
);