@@ -52,7 +52,12 @@ impl JsonRenderer<'_> {
52
52
let clean:: ItemInner { name, item_id, .. } = * item. inner ;
53
53
let id = self . id_from_item ( item) ;
54
54
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 ,
56
61
clean:: StrippedItem ( ref inner) => {
57
62
match & * * inner {
58
63
// We document stripped modules as with `Module::is_stripped` set to
@@ -61,12 +66,12 @@ impl JsonRenderer<'_> {
61
66
clean:: ModuleItem ( _)
62
67
if self . imported_items . contains ( & item_id. expect_def_id ( ) ) =>
63
68
{
64
- from_clean_item ( item, self ) ?
69
+ from_clean_item ( item, self )
65
70
}
66
71
_ => return None ,
67
72
}
68
73
}
69
- _ => from_clean_item ( item, self ) ? ,
74
+ _ => from_clean_item ( item, self ) ,
70
75
} ;
71
76
Some ( Item {
72
77
id,
@@ -268,13 +273,13 @@ impl FromClean<clean::AssocItemConstraintKind> for AssocItemConstraintKind {
268
273
}
269
274
}
270
275
271
- fn from_clean_item ( item : & clean:: Item , renderer : & JsonRenderer < ' _ > ) -> Option < ItemEnum > {
276
+ fn from_clean_item ( item : & clean:: Item , renderer : & JsonRenderer < ' _ > ) -> ItemEnum {
272
277
use clean:: ItemKind :: * ;
273
278
let name = item. name ;
274
279
let is_crate = item. is_crate ( ) ;
275
280
let header = item. fn_header ( renderer. tcx ) ;
276
281
277
- Some ( match & item. inner . kind {
282
+ match & item. inner . kind {
278
283
ModuleItem ( m) => {
279
284
ItemEnum :: Module ( Module { is_crate, items : renderer. ids ( & m. items ) , is_stripped : false } )
280
285
}
@@ -309,8 +314,6 @@ fn from_clean_item(item: &clean::Item, renderer: &JsonRenderer<'_>) -> Option<It
309
314
const_ : ci. kind . into_json ( renderer) ,
310
315
} ,
311
316
MacroItem ( m, _) => ItemEnum :: Macro ( m. source . clone ( ) ) ,
312
- // They are just placeholders so no need to handle them.
313
- AttrMacroItem | DeriveMacroItem => return None ,
314
317
ProcMacroItem ( m) => ItemEnum :: ProcMacro ( m. into_json ( renderer) ) ,
315
318
PrimitiveItem ( p) => {
316
319
ItemEnum :: Primitive ( Primitive {
@@ -337,8 +340,9 @@ fn from_clean_item(item: &clean::Item, renderer: &JsonRenderer<'_>) -> Option<It
337
340
bounds : b. into_json ( renderer) ,
338
341
type_ : Some ( t. item_type . as_ref ( ) . unwrap_or ( & t. type_ ) . into_json ( renderer) ) ,
339
342
} ,
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 ! ( ) ,
342
346
StrippedItem ( inner) => {
343
347
match inner. as_ref ( ) {
344
348
ModuleItem ( m) => ItemEnum :: Module ( Module {
@@ -354,7 +358,7 @@ fn from_clean_item(item: &clean::Item, renderer: &JsonRenderer<'_>) -> Option<It
354
358
name : name. as_ref ( ) . unwrap ( ) . to_string ( ) ,
355
359
rename : src. map ( |x| x. to_string ( ) ) ,
356
360
} ,
357
- } )
361
+ }
358
362
}
359
363
360
364
impl FromClean < clean:: Struct > for Struct {
0 commit comments