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.rs | 10 |
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 { |