Use hir::GenericParam in ide_db::Definition instead of relisting all 3

This commit is contained in:
Lukas Wirth 2021-01-08 12:28:02 +01:00
parent 6a0a47dd14
commit b795128dde
9 changed files with 65 additions and 42 deletions

View file

@ -215,10 +215,8 @@ impl TryToNav for Definition {
Definition::ModuleDef(it) => it.try_to_nav(db),
Definition::SelfType(it) => it.try_to_nav(db),
Definition::Local(it) => Some(it.to_nav(db)),
Definition::TypeParam(it) => it.try_to_nav(db),
Definition::LifetimeParam(it) => it.try_to_nav(db),
Definition::GenericParam(it) => it.try_to_nav(db),
Definition::Label(it) => Some(it.to_nav(db)),
Definition::ConstParam(it) => it.try_to_nav(db),
}
}
}
@ -389,6 +387,16 @@ impl TryToNav for hir::AssocItem {
}
}
impl TryToNav for hir::GenericParam {
fn try_to_nav(&self, db: &RootDatabase) -> Option<NavigationTarget> {
match self {
hir::GenericParam::TypeParam(it) => it.try_to_nav(db),
hir::GenericParam::ConstParam(it) => it.try_to_nav(db),
hir::GenericParam::LifetimeParam(it) => it.try_to_nav(db),
}
}
}
impl ToNav for hir::Local {
fn to_nav(&self, db: &RootDatabase) -> NavigationTarget {
let src = self.source(db);