Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/ide-db/src/defs.rs')
-rw-r--r--crates/ide-db/src/defs.rs13
1 files changed, 8 insertions, 5 deletions
diff --git a/crates/ide-db/src/defs.rs b/crates/ide-db/src/defs.rs
index d95d94ec72..747c90561d 100644
--- a/crates/ide-db/src/defs.rs
+++ b/crates/ide-db/src/defs.rs
@@ -213,8 +213,8 @@ impl Definition {
})
}
- pub fn label(&self, db: &RootDatabase) -> Option<String> {
- let label = match *self {
+ pub fn label(&self, db: &RootDatabase) -> String {
+ match *self {
Definition::Macro(it) => it.display(db).to_string(),
Definition::Field(it) => it.display(db).to_string(),
Definition::TupleField(it) => it.display(db).to_string(),
@@ -241,7 +241,11 @@ impl Definition {
}
}
Definition::SelfType(impl_def) => {
- impl_def.self_ty(db).as_adt().and_then(|adt| Definition::Adt(adt).label(db))?
+ let self_ty = &impl_def.self_ty(db);
+ match self_ty.as_adt() {
+ Some(it) => it.display(db).to_string(),
+ None => self_ty.display(db).to_string(),
+ }
}
Definition::GenericParam(it) => it.display(db).to_string(),
Definition::Label(it) => it.name(db).display(db).to_string(),
@@ -249,8 +253,7 @@ impl Definition {
Definition::BuiltinAttr(it) => format!("#[{}]", it.name(db)),
Definition::ToolModule(it) => it.name(db).to_string(),
Definition::DeriveHelper(it) => format!("derive_helper {}", it.name(db).display(db)),
- };
- Some(label)
+ }
}
}