mirror of
https://github.com/rust-lang/rust-analyzer.git
synced 2025-09-28 04:44:57 +00:00
Merge #10872
10872: ide_db: build symbol index from crate def map r=Veykril a=jhgg fixes #4842, #10764 Is this looking correct? 👀 - [x] build the symbol index based upon the CrateDefMap for the given crate in `crate_symbols` - [x] make it multi threaded again, and figure out how to cache each moduleid's symbol index in salsa. - [x] NavigationTarget for names in macros is wrong, need to figure out how to compute a text range in the original file id? - [x] cleanup some duped code - [x] collect macros from `ItemScope.declared_macros()` into symbol index. - [x] store declared macros in `ItemScope` so we can figure out where macros were defined for the index. - [x] do something about `SymbolIndex::for_files` - ideally it should use the new module symbol index stuff. - [x] delete `source_file_to_file_symbols` & co... - [x] figure out what to do about `library_symbols` - [x] maybe... speed up the new `library_symbols` - the new impl is probably much slower, and definitely much less parallel. **deciding to do nothing here, we can optimize later if necerssary.** - [x] fix failing test: `navigation_target::tests::test_nav_for_symbol` - notably the crate def map doesn't seem to find declarations inside function. - [x] now a bunch of other tests are failing around auto_import & qualify_path handlers. :( - [x] need to assoc items in traits and impls Co-authored-by: Jake Heinz <jh@discordapp.com>
This commit is contained in:
commit
2d0db312b5
14 changed files with 1048 additions and 181 deletions
|
@ -40,18 +40,14 @@ use hir_def::{
|
|||
adt::{ReprKind, VariantData},
|
||||
body::{BodyDiagnostic, SyntheticSyntax},
|
||||
expr::{BindingAnnotation, LabelId, Pat, PatId},
|
||||
item_tree::ItemTreeNode,
|
||||
lang_item::LangItemTarget,
|
||||
nameres,
|
||||
per_ns::PerNs,
|
||||
resolver::{HasResolver, Resolver},
|
||||
src::HasSource as _,
|
||||
AdtId, AssocContainerId, AssocItemId, AssocItemLoc, AttrDefId, ConstId, ConstParamId,
|
||||
DefWithBodyId, EnumId, FunctionId, GenericDefId, HasModule, ImplId, LifetimeParamId,
|
||||
LocalEnumVariantId, LocalFieldId, Lookup, ModuleId, StaticId, StructId, TraitId, TypeAliasId,
|
||||
TypeParamId, UnionId,
|
||||
AttrDefId, ConstId, ConstParamId, EnumId, FunctionId, GenericDefId, HasModule, LifetimeParamId,
|
||||
LocalEnumVariantId, LocalFieldId, StaticId, StructId, TypeAliasId, TypeParamId, UnionId,
|
||||
};
|
||||
use hir_expand::{name::name, MacroCallKind, MacroDefId, MacroDefKind};
|
||||
use hir_expand::{name::name, MacroCallKind, MacroDefKind};
|
||||
use hir_ty::{
|
||||
autoderef,
|
||||
consteval::ConstExt,
|
||||
|
@ -109,14 +105,28 @@ pub use {
|
|||
attr::{Attr, Attrs, AttrsWithOwner, Documentation},
|
||||
find_path::PrefixKind,
|
||||
import_map,
|
||||
nameres::ModuleSource,
|
||||
item_scope::ItemScope,
|
||||
item_tree::ItemTreeNode,
|
||||
nameres::{DefMap, ModuleData, ModuleOrigin, ModuleSource},
|
||||
path::{ModPath, PathKind},
|
||||
src::HasSource as DefHasSource, // xx: I don't like this shadowing of HasSource... :(
|
||||
type_ref::{Mutability, TypeRef},
|
||||
visibility::Visibility,
|
||||
AdtId,
|
||||
AssocContainerId,
|
||||
AssocItemId,
|
||||
AssocItemLoc,
|
||||
DefWithBodyId,
|
||||
ImplId,
|
||||
ItemLoc,
|
||||
Lookup,
|
||||
ModuleDefId,
|
||||
ModuleId,
|
||||
TraitId,
|
||||
},
|
||||
hir_expand::{
|
||||
name::{known, Name},
|
||||
ExpandResult, HirFileId, InFile, MacroFile, Origin,
|
||||
ExpandResult, HirFileId, InFile, MacroDefId, MacroFile, Origin,
|
||||
},
|
||||
hir_ty::display::HirDisplay,
|
||||
};
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue