Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/hir-def/src/data.rs')
-rw-r--r--crates/hir-def/src/data.rs14
1 files changed, 5 insertions, 9 deletions
diff --git a/crates/hir-def/src/data.rs b/crates/hir-def/src/data.rs
index 3a3b540c13..c3c2e51fd0 100644
--- a/crates/hir-def/src/data.rs
+++ b/crates/hir-def/src/data.rs
@@ -657,22 +657,18 @@ impl<'a> AssocItemCollector<'a> {
// crate failed), skip expansion like we would if it was
// disabled. This is analogous to the handling in
// `DefCollector::collect_macros`.
- if exp.is_dummy() {
- self.diagnostics.push(DefDiagnostic::unresolved_proc_macro(
+ if let Some(err) = exp.as_expand_error(self.module_id.krate) {
+ self.diagnostics.push(DefDiagnostic::macro_error(
self.module_id.local_id,
- loc.kind,
- loc.def.krate,
+ ast_id,
+ (*attr.path).clone(),
+ err,
));
-
- continue 'attrs;
- }
- if exp.is_disabled() {
continue 'attrs;
}
}
self.macro_calls.push((ast_id, call_id));
-
let res =
self.expander.enter_expand_id::<ast::MacroItems>(self.db, call_id);
self.collect_macro_items(res);