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
This commit is contained in:
bors 2023-08-12 04:55:17 +00:00
commit 6cf06c1675
2 changed files with 8 additions and 2 deletions

View File

@ -323,6 +323,8 @@ impl Query {
hir::ModuleDef::Adt(..)
| hir::ModuleDef::TypeAlias(..)
| hir::ModuleDef::BuiltinType(..)
| hir::ModuleDef::TraitAlias(..)
| hir::ModuleDef::Trait(..)
)
{
continue;

View File

@ -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,