Move to upstream macro_rules! model
This commit is contained in:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user