@@ -1420,30 +1420,36 @@ fn item_macro(w: &mut Buffer, cx: &mut Context<'_>, it: &clean::Item, t: &clean:
1420
1420
write ! ( w, "{}" , document( cx, it, None , HeadingOffset :: H2 ) )
1421
1421
}
1422
1422
1423
- fn item_proc_macro ( w : & mut Buffer , cx : & mut Context < ' _ > , it : & clean:: Item , m : & clean:: ProcMacro ) {
1424
- wrap_item ( w, |w| {
1423
+ fn item_proc_macro (
1424
+ w : & mut impl fmt:: Write ,
1425
+ cx : & mut Context < ' _ > ,
1426
+ it : & clean:: Item ,
1427
+ m : & clean:: ProcMacro ,
1428
+ ) {
1429
+ let mut buffer = Buffer :: new ( ) ;
1430
+ wrap_item ( & mut buffer, |buffer| {
1425
1431
let name = it. name . expect ( "proc-macros always have names" ) ;
1426
1432
match m. kind {
1427
1433
MacroKind :: Bang => {
1428
- write ! ( w , "{}!() {{ /* proc-macro */ }}" , name) ;
1434
+ write ! ( buffer , "{}!() {{ /* proc-macro */ }}" , name) ;
1429
1435
}
1430
1436
MacroKind :: Attr => {
1431
- write ! ( w , "#[{}]" , name) ;
1437
+ write ! ( buffer , "#[{}]" , name) ;
1432
1438
}
1433
1439
MacroKind :: Derive => {
1434
- write ! ( w , "#[derive({})]" , name) ;
1440
+ write ! ( buffer , "#[derive({})]" , name) ;
1435
1441
if !m. helpers . is_empty ( ) {
1436
- w . push_str ( "\n {\n " ) ;
1437
- w . push_str ( " // Attributes available to this derive:\n " ) ;
1442
+ buffer . push_str ( "\n {\n " ) ;
1443
+ buffer . push_str ( " // Attributes available to this derive:\n " ) ;
1438
1444
for attr in & m. helpers {
1439
- writeln ! ( w , " #[{}]" , attr) ;
1445
+ writeln ! ( buffer , " #[{}]" , attr) ;
1440
1446
}
1441
- w . push_str ( "}\n " ) ;
1447
+ buffer . push_str ( "}\n " ) ;
1442
1448
}
1443
1449
}
1444
1450
}
1445
1451
} ) ;
1446
- write ! ( w, "{}" , document( cx, it, None , HeadingOffset :: H2 ) )
1452
+ write ! ( w, "{}{} " , buffer . into_inner ( ) , document( cx, it, None , HeadingOffset :: H2 ) ) . unwrap ( ) ;
1447
1453
}
1448
1454
1449
1455
fn item_primitive ( w : & mut Buffer , cx : & mut Context < ' _ > , it : & clean:: Item ) {
0 commit comments