From b84efbaacfc980ba167edc145aa7ca5d738448ff Mon Sep 17 00:00:00 2001 From: Jonas Schievink Date: Thu, 18 Mar 2021 15:37:14 +0100 Subject: Make MacroDefId's `AstId` mandatory when possible --- crates/hir_def/src/attr.rs | 2 +- crates/hir_def/src/import_map.rs | 18 +++++++++--------- crates/hir_def/src/lib.rs | 2 +- crates/hir_def/src/nameres/collector.rs | 5 +---- 4 files changed, 12 insertions(+), 15 deletions(-) (limited to 'crates/hir_def/src') diff --git a/crates/hir_def/src/attr.rs b/crates/hir_def/src/attr.rs index e4c84afbf..8d925c0c1 100644 --- a/crates/hir_def/src/attr.rs +++ b/crates/hir_def/src/attr.rs @@ -209,7 +209,7 @@ impl Attrs { }, AttrDefId::TraitId(it) => attrs_from_item_tree(it.lookup(db).id, db), AttrDefId::MacroDefId(it) => { - it.ast_id.map_or_else(Default::default, |ast_id| attrs_from_ast(ast_id, db)) + it.ast_id().map_or_else(Default::default, |ast_id| attrs_from_ast(ast_id, db)) } AttrDefId::ImplId(it) => attrs_from_item_tree(it.lookup(db).id, db), AttrDefId::ConstId(it) => attrs_from_item_tree(it.lookup(db).id, db), diff --git a/crates/hir_def/src/import_map.rs b/crates/hir_def/src/import_map.rs index 369bc3350..960cabb5f 100644 --- a/crates/hir_def/src/import_map.rs +++ b/crates/hir_def/src/import_map.rs @@ -912,10 +912,10 @@ mod tests { dep::fmt (t) dep::format (f) dep::Fmt (v) - dep::fmt::Display (t) + dep::Fmt (m) dep::Fmt (t) dep::fmt::Display::fmt (a) - dep::Fmt (m) + dep::fmt::Display (t) "#]], ); @@ -926,9 +926,9 @@ mod tests { expect![[r#" dep::fmt (t) dep::Fmt (v) + dep::Fmt (m) dep::Fmt (t) dep::fmt::Display::fmt (a) - dep::Fmt (m) "#]], ); @@ -939,10 +939,10 @@ mod tests { expect![[r#" dep::fmt (t) dep::Fmt (v) - dep::fmt::Display (t) + dep::Fmt (m) dep::Fmt (t) dep::fmt::Display::fmt (a) - dep::Fmt (m) + dep::fmt::Display (t) "#]], ); } @@ -980,10 +980,10 @@ mod tests { expect![[r#" dep::fmt (t) dep::Fmt (v) - dep::fmt::Display (t) + dep::Fmt (m) dep::Fmt (t) dep::fmt::Display::fmt (a) - dep::Fmt (m) + dep::fmt::Display (t) "#]], ); @@ -994,9 +994,9 @@ mod tests { expect![[r#" dep::fmt (t) dep::Fmt (v) + dep::Fmt (m) dep::Fmt (t) dep::fmt::Display::fmt (a) - dep::Fmt (m) "#]], ); } @@ -1058,8 +1058,8 @@ mod tests { Query::new("".to_string()).limit(2), expect![[r#" dep::fmt (t) - dep::Fmt (t) dep::Fmt (m) + dep::Fmt (t) dep::Fmt (v) "#]], ); diff --git a/crates/hir_def/src/lib.rs b/crates/hir_def/src/lib.rs index 6758411a0..21add086d 100644 --- a/crates/hir_def/src/lib.rs +++ b/crates/hir_def/src/lib.rs @@ -650,7 +650,7 @@ fn macro_call_as_call_id( ) -> Result, UnresolvedMacro> { let def: MacroDefId = resolver(call.path.clone()).ok_or(UnresolvedMacro)?; - let res = if let MacroDefKind::BuiltInEager(_) = def.kind { + let res = if let MacroDefKind::BuiltInEager(..) = def.kind { let macro_call = InFile::new(call.ast_id.file_id, call.ast_id.to_node(db.upcast())); let hygiene = Hygiene::new(db.upcast(), call.ast_id.file_id); diff --git a/crates/hir_def/src/nameres/collector.rs b/crates/hir_def/src/nameres/collector.rs index d0fefb5af..45a79e896 100644 --- a/crates/hir_def/src/nameres/collector.rs +++ b/crates/hir_def/src/nameres/collector.rs @@ -357,13 +357,11 @@ impl DefCollector<'_> { self.exports_proc_macros = true; let macro_def = match self.proc_macros.iter().find(|(n, _)| n == name) { Some((_, expander)) => MacroDefId { - ast_id: None, krate: self.def_map.krate, kind: MacroDefKind::ProcMacro(*expander), local_inner: false, }, None => MacroDefId { - ast_id: None, krate: self.def_map.krate, kind: MacroDefKind::ProcMacro(ProcMacroExpander::dummy(self.def_map.krate)), local_inner: false, @@ -1445,9 +1443,8 @@ impl ModCollector<'_, '_> { // Case 2: normal `macro_rules!` macro let macro_id = MacroDefId { - ast_id: Some(ast_id), krate: self.def_collector.def_map.krate, - kind: MacroDefKind::Declarative, + kind: MacroDefKind::Declarative(ast_id), local_inner: is_local_inner, }; self.def_collector.define_macro(self.module_id, mac.name.clone(), macro_id, is_export); -- cgit v1.2.3