@@ -2274,9 +2274,9 @@ fn render_implementor(cx: &Context, implementor: &Impl, w: &mut fmt::Formatter,
22742274}
22752275
22762276fn render_impls ( cx : & Context , w : & mut fmt:: Formatter ,
2277- traits : Vec < & & Impl > ,
2277+ traits : & [ & & Impl ] ,
22782278 containing_item : & clean:: Item ) -> Result < ( ) , fmt:: Error > {
2279- for i in & traits {
2279+ for i in traits {
22802280 let did = i. trait_did ( ) . unwrap ( ) ;
22812281 let assoc_link = AssocItemLink :: GotoSource ( did, & i. inner_impl ( ) . provided_trait_methods ) ;
22822282 render_impl ( w, cx, i, assoc_link,
@@ -3172,14 +3172,22 @@ fn render_assoc_items(w: &mut fmt::Formatter,
31723172 . iter ( )
31733173 . partition :: < Vec < _ > , _ > ( |t| t. inner_impl ( ) . synthetic ) ;
31743174
3175- write ! ( w, "
3176- <h2 id='implementations' class='small-section-header'>
3177- Trait Implementations<a href='#implementations' class='anchor'></a>
3178- </h2>
3179- <div id='implementations-list'>
3180- " ) ?;
3181- render_impls ( cx, w, concrete, containing_item) ?;
3182- write ! ( w, "</div>" ) ?;
3175+ struct RendererStruct < ' a , ' b , ' c > ( & ' a Context , Vec < & ' b & ' b Impl > , & ' c clean:: Item ) ;
3176+
3177+ impl < ' a , ' b , ' c > fmt:: Display for RendererStruct < ' a , ' b , ' c > {
3178+ fn fmt ( & self , fmt : & mut fmt:: Formatter ) -> fmt:: Result {
3179+ render_impls ( self . 0 , fmt, & self . 1 , self . 2 )
3180+ }
3181+ }
3182+
3183+ let impls = format ! ( "{}" , RendererStruct ( cx, concrete, containing_item) ) ;
3184+ if !impls. is_empty ( ) {
3185+ write ! ( w, "
3186+ <h2 id='implementations' class='small-section-header'>
3187+ Trait Implementations<a href='#implementations' class='anchor'></a>
3188+ </h2>
3189+ <div id='implementations-list'>{}</div>" , impls) ?;
3190+ }
31833191
31843192 if !synthetic. is_empty ( ) {
31853193 write ! ( w, "
@@ -3188,7 +3196,7 @@ fn render_assoc_items(w: &mut fmt::Formatter,
31883196 </h2>
31893197 <div id='synthetic-implementations-list'>
31903198 " ) ?;
3191- render_impls ( cx, w, synthetic, containing_item) ?;
3199+ render_impls ( cx, w, & synthetic, containing_item) ?;
31923200 write ! ( w, "</div>" ) ?;
31933201 }
31943202 }
0 commit comments