mirror of
https://github.com/rust-lang/rust-analyzer.git
synced 2025-10-02 22:54:58 +00:00
Move to upstream macro_rules!
model
This commit is contained in:
parent
39aae835fd
commit
c1cb595382
36 changed files with 325 additions and 275 deletions
|
@ -110,8 +110,8 @@ impl HasSource for TypeAlias {
|
|||
}
|
||||
}
|
||||
impl HasSource for MacroDef {
|
||||
type Ast = ast::MacroCall;
|
||||
fn source(self, db: &dyn HirDatabase) -> InFile<ast::MacroCall> {
|
||||
type Ast = ast::MacroRules;
|
||||
fn source(self, db: &dyn HirDatabase) -> InFile<ast::MacroRules> {
|
||||
InFile {
|
||||
file_id: self.id.ast_id.expect("MacroDef without ast_id").file_id,
|
||||
value: self.id.ast_id.expect("MacroDef without ast_id").to_node(db.upcast()),
|
||||
|
|
|
@ -723,7 +723,7 @@ to_def_impls![
|
|||
(crate::EnumVariant, ast::Variant, enum_variant_to_def),
|
||||
(crate::TypeParam, ast::TypeParam, type_param_to_def),
|
||||
(crate::LifetimeParam, ast::LifetimeParam, lifetime_param_to_def),
|
||||
(crate::MacroDef, ast::MacroCall, macro_call_to_def), // this one is dubious, not all calls are macros
|
||||
(crate::MacroDef, ast::MacroRules, macro_rules_to_def),
|
||||
(crate::Local, ast::IdentPat, bind_pat_to_def),
|
||||
];
|
||||
|
||||
|
|
|
@ -149,7 +149,10 @@ impl SourceToDefCtx<'_, '_> {
|
|||
}
|
||||
|
||||
// FIXME: use DynMap as well?
|
||||
pub(super) fn macro_call_to_def(&mut self, src: InFile<ast::MacroCall>) -> Option<MacroDefId> {
|
||||
pub(super) fn macro_rules_to_def(
|
||||
&mut self,
|
||||
src: InFile<ast::MacroRules>,
|
||||
) -> Option<MacroDefId> {
|
||||
let kind = MacroDefKind::Declarative;
|
||||
let file_id = src.file_id.original_file(self.db.upcast());
|
||||
let krate = self.file_to_def(file_id)?.krate;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue