diff --git a/src/librustdoc/clean/inline.rs b/src/librustdoc/clean/inline.rs index 287637ae0da9d..4d1b6b8b1a98e 100644 --- a/src/librustdoc/clean/inline.rs +++ b/src/librustdoc/clean/inline.rs @@ -105,14 +105,15 @@ pub fn try_inline(cx: &DocContext, def: Def, name: ast::Name, visited: &mut FxHa record_extern_fqn(cx, did, clean::TypeKind::Const); clean::ConstantItem(build_const(cx, did)) } - Def::Macro(did, mac_kind) => { - match mac_kind { - MacroKind::Bang => record_extern_fqn(cx, did, clean::TypeKind::Macro), - MacroKind::Attr => record_extern_fqn(cx, did, clean::TypeKind::Attr), - MacroKind::Derive => record_extern_fqn(cx, did, clean::TypeKind::Derive), - MacroKind::ProcMacroStub => return None, + // FIXME: proc-macros don't propagate attributes or spans across crates, so they look empty + Def::Macro(did, MacroKind::Bang) => { + let mac = build_macro(cx, did, name); + if let clean::MacroItem(..) = mac { + record_extern_fqn(cx, did, clean::TypeKind::Macro); + mac + } else { + return None; } - build_macro(cx, did, name) } _ => return None, };