mirror of
https://github.com/rust-lang/rust-analyzer.git
synced 2025-10-02 06:41:48 +00:00
Add MacroId to hir_def in attempt to unify Macros with ModuleDefId
This commit is contained in:
parent
d425c5b534
commit
42d46325a1
19 changed files with 386 additions and 215 deletions
|
@ -14,8 +14,8 @@ use crate::{
|
|||
item_scope::ItemScope,
|
||||
keys,
|
||||
src::{HasChildSource, HasSource},
|
||||
AdtId, AssocItemId, DefWithBodyId, EnumId, EnumVariantId, FieldId, ImplId, Lookup, ModuleDefId,
|
||||
ModuleId, TraitId, VariantId,
|
||||
AdtId, AssocItemId, DefWithBodyId, EnumId, EnumVariantId, FieldId, ImplId, Lookup, MacroId,
|
||||
ModuleDefId, ModuleId, TraitId, VariantId,
|
||||
};
|
||||
|
||||
pub trait ChildBySource {
|
||||
|
@ -97,17 +97,6 @@ impl ChildBySource for ItemScope {
|
|||
res[keys::CONST].insert(loc.source(db).value, konst);
|
||||
}
|
||||
});
|
||||
self.macros().for_each(|(_, makro)| {
|
||||
let ast_id = makro.ast_id();
|
||||
if ast_id.either(|it| it.file_id, |it| it.file_id) == file_id {
|
||||
let src = match ast_id {
|
||||
Either::Left(ast_id) => ast_id.to_node(db.upcast()),
|
||||
// FIXME: Do we need to add proc-macros into a PROCMACRO dynmap here?
|
||||
Either::Right(_fn) => return,
|
||||
};
|
||||
res[keys::MACRO].insert(src, makro);
|
||||
}
|
||||
});
|
||||
self.attr_macro_invocs().filter(|(id, _)| id.file_id == file_id).for_each(
|
||||
|(ast_id, call_id)| {
|
||||
res[keys::ATTR_MACRO_CALL].insert(ast_id.to_node(db.upcast()), call_id);
|
||||
|
@ -151,6 +140,11 @@ impl ChildBySource for ItemScope {
|
|||
AdtId::UnionId(id) => insert!(map[keys::UNION].insert(id)),
|
||||
AdtId::EnumId(id) => insert!(map[keys::ENUM].insert(id)),
|
||||
},
|
||||
ModuleDefId::MacroId(id) => match id {
|
||||
MacroId::Macro2Id(id) => insert!(map[keys::MACRO2].insert(id)),
|
||||
MacroId::MacroRulesId(id) => insert!(map[keys::MACRO_RULES].insert(id)),
|
||||
MacroId::ProcMacroId(id) => insert!(map[keys::PROC_MACRO].insert(id)),
|
||||
},
|
||||
_ => (),
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue