@@ -52,7 +52,12 @@ impl JsonRenderer<'_> {
5252 let clean:: ItemInner { name, item_id, .. } = * item. inner ;
5353 let id = self . id_from_item ( item) ;
5454 let inner = match item. kind {
55- clean:: KeywordItem | clean:: AttributeItem => return None ,
55+ clean:: KeywordItem
56+ | clean:: AttributeItem
57+ // Placeholder so no need to handle it.
58+ | clean:: AttrMacroItem
59+ // Placeholder so no need to handle it.
60+ | clean:: DeriveMacroItem => return None ,
5661 clean:: StrippedItem ( ref inner) => {
5762 match & * * inner {
5863 // We document stripped modules as with `Module::is_stripped` set to
@@ -61,12 +66,12 @@ impl JsonRenderer<'_> {
6166 clean:: ModuleItem ( _)
6267 if self . imported_items . contains ( & item_id. expect_def_id ( ) ) =>
6368 {
64- from_clean_item ( item, self ) ?
69+ from_clean_item ( item, self )
6570 }
6671 _ => return None ,
6772 }
6873 }
69- _ => from_clean_item ( item, self ) ? ,
74+ _ => from_clean_item ( item, self ) ,
7075 } ;
7176 Some ( Item {
7277 id,
@@ -268,13 +273,13 @@ impl FromClean<clean::AssocItemConstraintKind> for AssocItemConstraintKind {
268273 }
269274}
270275
271- fn from_clean_item ( item : & clean:: Item , renderer : & JsonRenderer < ' _ > ) -> Option < ItemEnum > {
276+ fn from_clean_item ( item : & clean:: Item , renderer : & JsonRenderer < ' _ > ) -> ItemEnum {
272277 use clean:: ItemKind :: * ;
273278 let name = item. name ;
274279 let is_crate = item. is_crate ( ) ;
275280 let header = item. fn_header ( renderer. tcx ) ;
276281
277- Some ( match & item. inner . kind {
282+ match & item. inner . kind {
278283 ModuleItem ( m) => {
279284 ItemEnum :: Module ( Module { is_crate, items : renderer. ids ( & m. items ) , is_stripped : false } )
280285 }
@@ -309,8 +314,6 @@ fn from_clean_item(item: &clean::Item, renderer: &JsonRenderer<'_>) -> Option<It
309314 const_ : ci. kind . into_json ( renderer) ,
310315 } ,
311316 MacroItem ( m, _) => ItemEnum :: Macro ( m. source . clone ( ) ) ,
312- // They are just placeholders so no need to handle them.
313- AttrMacroItem | DeriveMacroItem => return None ,
314317 ProcMacroItem ( m) => ItemEnum :: ProcMacro ( m. into_json ( renderer) ) ,
315318 PrimitiveItem ( p) => {
316319 ItemEnum :: Primitive ( Primitive {
@@ -337,8 +340,9 @@ fn from_clean_item(item: &clean::Item, renderer: &JsonRenderer<'_>) -> Option<It
337340 bounds : b. into_json ( renderer) ,
338341 type_ : Some ( t. item_type . as_ref ( ) . unwrap_or ( & t. type_ ) . into_json ( renderer) ) ,
339342 } ,
340- // `convert_item` early returns `None` for stripped items, keywords and attributes.
341- KeywordItem | AttributeItem => unreachable ! ( ) ,
343+ // `convert_item` early returns `None` for stripped items, keywords, attributes and
344+ // "special" macro rules.
345+ KeywordItem | AttributeItem | AttrMacroItem | DeriveMacroItem => unreachable ! ( ) ,
342346 StrippedItem ( inner) => {
343347 match inner. as_ref ( ) {
344348 ModuleItem ( m) => ItemEnum :: Module ( Module {
@@ -354,7 +358,7 @@ fn from_clean_item(item: &clean::Item, renderer: &JsonRenderer<'_>) -> Option<It
354358 name : name. as_ref ( ) . unwrap ( ) . to_string ( ) ,
355359 rename : src. map ( |x| x. to_string ( ) ) ,
356360 } ,
357- } )
361+ }
358362}
359363
360364impl FromClean < clean:: Struct > for Struct {
0 commit comments