@@ -104,7 +104,11 @@ pub fn try_inline(cx: &DocContext, def: Def, name: ast::Name, visited: &mut FxHa
104104 // separately
105105 Def :: Macro ( did, MacroKind :: Bang ) => {
106106 record_extern_fqn ( cx, did, clean:: TypeKind :: Macro ) ;
107- clean:: MacroItem ( build_macro ( cx, did, name) )
107+ if let Some ( mac) = build_macro ( cx, did, name) {
108+ clean:: MacroItem ( mac)
109+ } else {
110+ return None ;
111+ }
108112 }
109113 _ => return None ,
110114 } ;
@@ -466,12 +470,12 @@ fn build_static(cx: &DocContext, did: DefId, mutable: bool) -> clean::Static {
466470 }
467471}
468472
469- fn build_macro ( cx : & DocContext , did : DefId , name : ast:: Name ) -> clean:: Macro {
473+ fn build_macro ( cx : & DocContext , did : DefId , name : ast:: Name ) -> Option < clean:: Macro > {
470474 let imported_from = cx. tcx . original_crate_name ( did. krate ) ;
471475 let def = match cx. cstore . load_macro_untracked ( did, cx. sess ( ) ) {
472476 LoadedMacro :: MacroDef ( macro_def) => macro_def,
473477 // FIXME(jseyfried): document proc macro re-exports
474- LoadedMacro :: ProcMacro ( ..) => panic ! ( "attempting to document proc-macro re-export" ) ,
478+ LoadedMacro :: ProcMacro ( ..) => return None ,
475479 } ;
476480
477481 let matchers: hir:: HirVec < Span > = if let ast:: ItemKind :: MacroDef ( ref def) = def. node {
@@ -487,10 +491,10 @@ fn build_macro(cx: &DocContext, did: DefId, name: ast::Name) -> clean::Macro {
487491 format!( " {} => {{ ... }};\n " , span. to_src( cx) )
488492 } ) . collect:: <String >( ) ) ;
489493
490- clean:: Macro {
494+ Some ( clean:: Macro {
491495 source,
492496 imported_from : Some ( imported_from) . clean ( cx) ,
493- }
497+ } )
494498}
495499
496500/// A trait's generics clause actually contains all of the predicates for all of
0 commit comments