diff options
| author | bors <bors@rust-lang.org> | 2023-08-12 04:55:17 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2023-08-12 04:55:17 +0000 |
| commit | 6cf06c16754730188b25eeb01883febe1ccc3051 (patch) | |
| tree | 5fa6d7c15c36d71e5c4e764731e54ea0186ab541 | |
| parent | 39ebc378c29b504dd86e63637df6836a23ed9d5e (diff) | |
| parent | d6d188fce2f2dec3b6d290477c7727b420b0c320 (diff) | |
| download | rust-6cf06c16754730188b25eeb01883febe1ccc3051.tar.gz rust-6cf06c16754730188b25eeb01883febe1ccc3051.zip | |
Auto merge of #15445 - Veykril:worl-symbols-traits, r=Veykril
fix: Fix `only_types` config filtering out traits from world symbols It is a bit confusing that this apparently did not filter every trait out though... Closes https://github.com/rust-lang/rust-analyzer/issues/15444 Closes https://github.com/rust-lang/rust-analyzer/issues/15200
| -rw-r--r-- | crates/ide-db/src/symbol_index.rs | 2 | ||||
| -rw-r--r-- | crates/ide/src/navigation_target.rs | 8 |
2 files changed, 8 insertions, 2 deletions
diff --git a/crates/ide-db/src/symbol_index.rs b/crates/ide-db/src/symbol_index.rs index b54c43b296b..ad1ce453eca 100644 --- a/crates/ide-db/src/symbol_index.rs +++ b/crates/ide-db/src/symbol_index.rs @@ -323,6 +323,8 @@ impl Query { hir::ModuleDef::Adt(..) | hir::ModuleDef::TypeAlias(..) | hir::ModuleDef::BuiltinType(..) + | hir::ModuleDef::TraitAlias(..) + | hir::ModuleDef::Trait(..) ) { continue; diff --git a/crates/ide/src/navigation_target.rs b/crates/ide/src/navigation_target.rs index d1479dd1e58..0740bfbc7b1 100644 --- a/crates/ide/src/navigation_target.rs +++ b/crates/ide/src/navigation_target.rs @@ -175,8 +175,12 @@ impl TryToNav for FileSymbol { Some(NavigationTarget { file_id: full_range.file_id, - name: if self.is_alias { self.def.name(db)?.to_smol_str() } else { self.name.clone() }, - alias: if self.is_alias { Some(self.name.clone()) } else { None }, + name: self + .is_alias + .then(|| self.def.name(db)) + .flatten() + .map_or_else(|| self.name.clone(), |it| it.to_smol_str()), + alias: self.is_alias.then(|| self.name.clone()), kind: Some(hir::ModuleDefId::from(self.def).into()), full_range: full_range.range, focus_range, |
