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.rs10
1 files changed, 10 insertions, 0 deletions
diff --git a/crates/ide_db/src/defs.rs b/crates/ide_db/src/defs.rs
index 80988986ce..9d05db4a77 100644
--- a/crates/ide_db/src/defs.rs
+++ b/crates/ide_db/src/defs.rs
@@ -116,6 +116,7 @@ impl Definition {
}
}
+#[derive(Debug)]
pub enum IdentClass {
NameClass(NameClass),
NameRefClass(NameRefClass),
@@ -145,6 +146,15 @@ impl IdentClass {
Self::classify_node(sema, &parent)
}
+ pub fn classify_lifetime(
+ sema: &Semantics<RootDatabase>,
+ lifetime: &ast::Lifetime,
+ ) -> Option<IdentClass> {
+ NameClass::classify_lifetime(sema, &lifetime).map(IdentClass::NameClass).or_else(|| {
+ NameRefClass::classify_lifetime(sema, &lifetime).map(IdentClass::NameRefClass)
+ })
+ }
+
pub fn definitions(self) -> ArrayVec<Definition, 2> {
let mut res = ArrayVec::new();
match self {