@@ -27,9 +27,6 @@ crate trait FormatRenderer<'tcx>: Sized {
2727 tcx : TyCtxt < ' tcx > ,
2828 ) -> Result < ( Self , clean:: Crate ) , Error > ;
2929
30- /// Make a new renderer to render a child of the item currently being rendered.
31- fn make_child_renderer ( & self ) -> Self ;
32-
3330 /// Renders a single non-module item. This means no recursive sub-item rendering is required.
3431 fn item ( & mut self , item : clean:: Item ) -> Result < ( ) , Error > ;
3532
@@ -57,7 +54,7 @@ crate fn run_format<'tcx, T: FormatRenderer<'tcx>>(
5754 let prof = & tcx. sess . prof ;
5855
5956 let emit_crate = options. should_emit_crate ( ) ;
60- let ( mut format_renderer , krate) = prof
57+ let ( mut cx , krate) = prof
6158 . extra_verbose_generic_activity ( "create_renderer" , T :: descr ( ) )
6259 . run ( || T :: init ( krate, options, cache, tcx) ) ?;
6360
@@ -66,10 +63,10 @@ crate fn run_format<'tcx, T: FormatRenderer<'tcx>>(
6663 }
6764
6865 // Render the crate documentation
69- let mut work = vec ! [ ( format_renderer . make_child_renderer ( ) , krate. module) ] ;
66+ let mut work = vec ! [ krate. module] ;
7067
7168 let unknown = Symbol :: intern ( "<unknown item>" ) ;
72- while let Some ( ( mut cx , item) ) = work. pop ( ) {
69+ while let Some ( item) = work. pop ( ) {
7370 if item. is_mod ( ) && T :: RUN_ON_MODULE {
7471 // modules are special because they add a namespace. We also need to
7572 // recurse into the items of the module as well.
@@ -81,11 +78,7 @@ crate fn run_format<'tcx, T: FormatRenderer<'tcx>>(
8178 clean:: StrippedItem ( box clean:: ModuleItem ( m) ) | clean:: ModuleItem ( m) => m,
8279 _ => unreachable ! ( ) ,
8380 } ;
84- for it in module. items {
85- debug ! ( "Adding {:?} to worklist" , it. name) ;
86- work. push ( ( cx. make_child_renderer ( ) , it) ) ;
87- }
88-
81+ work. extend ( module. items ) ;
8982 cx. mod_item_out ( ) ?;
9083 // FIXME: checking `item.name.is_some()` is very implicit and leads to lots of special
9184 // cases. Use an explicit match instead.
@@ -95,5 +88,5 @@ crate fn run_format<'tcx, T: FormatRenderer<'tcx>>(
9588 }
9689 }
9790 prof. extra_verbose_generic_activity ( "renderer_after_krate" , T :: descr ( ) )
98- . run ( || format_renderer . after_krate ( ) )
91+ . run ( || cx . after_krate ( ) )
9992}
0 commit comments