Unnamed repository; edit this file 'description' to name the repository.
Fix scip inherent impl overflow
David Richey 2025-01-28
parent 606cfef · commit 5017291
-rw-r--r--crates/rust-analyzer/src/cli/scip.rs12
1 files changed, 6 insertions, 6 deletions
diff --git a/crates/rust-analyzer/src/cli/scip.rs b/crates/rust-analyzer/src/cli/scip.rs
index dc0f722aae..22bf0075ad 100644
--- a/crates/rust-analyzer/src/cli/scip.rs
+++ b/crates/rust-analyzer/src/cli/scip.rs
@@ -444,14 +444,14 @@ impl SymbolGenerator {
MonikerResult::Moniker(moniker) => TokenSymbols {
symbol: scip::symbol::format_symbol(moniker_to_symbol(moniker)),
enclosing_symbol: None,
- is_inherent_impl: moniker
- .identifier
- .description
- .get(moniker.identifier.description.len() - 2)
- .is_some_and(|descriptor| {
+ is_inherent_impl: match &moniker.identifier.description[..] {
+ // inherent impls are represented as impl#[SelfType]
+ [.., descriptor, _] => {
descriptor.desc == MonikerDescriptorKind::Type
&& descriptor.name == "impl"
- }),
+ }
+ _ => false,
+ },
},
MonikerResult::Local { enclosing_moniker } => {
let local_symbol = scip::types::Symbol::new_local(local_count);