@@ -2678,7 +2678,6 @@ fn item_function(w: &mut fmt::Formatter, cx: &Context, it: &clean::Item,
26782678
26792679fn render_implementor ( cx : & Context , implementor : & Impl , w : & mut fmt:: Formatter ,
26802680 implementor_dups : & FxHashMap < & str , ( DefId , bool ) > ) -> fmt:: Result {
2681- write ! ( w, "<li><table class='table-display'><tbody><tr><td><code>" ) ?;
26822681 // If there's already another implementor that has the same abbridged name, use the
26832682 // full path, for example in `std::iter::ExactSizeIterator`
26842683 let use_absolute = match implementor. inner_impl ( ) . for_ {
@@ -2689,22 +2688,8 @@ fn render_implementor(cx: &Context, implementor: &Impl, w: &mut fmt::Formatter,
26892688 } => implementor_dups[ path. last_name ( ) ] . 1 ,
26902689 _ => false ,
26912690 } ;
2692- fmt_impl_for_trait_page ( & implementor. inner_impl ( ) , w, use_absolute) ?;
2693- for it in & implementor. inner_impl ( ) . items {
2694- if let clean:: TypedefItem ( ref tydef, _) = it. inner {
2695- write ! ( w, "<span class=\" where fmt-newline\" > " ) ?;
2696- assoc_type ( w, it, & [ ] , Some ( & tydef. type_ ) , AssocItemLink :: Anchor ( None ) ) ?;
2697- write ! ( w, ";</span>" ) ?;
2698- }
2699- }
2700- write ! ( w, "</code><td>" ) ?;
2701- if let Some ( l) = ( Item { cx, item : & implementor. impl_item } ) . src_href ( ) {
2702- write ! ( w, "<div class='out-of-band'>" ) ?;
2703- write ! ( w, "<a class='srclink' href='{}' title='{}'>[src]</a>" ,
2704- l, "goto source code" ) ?;
2705- write ! ( w, "</div>" ) ?;
2706- }
2707- writeln ! ( w, "</td></tr></tbody></table></li>" ) ?;
2691+ render_impl ( w, cx, implementor, AssocItemLink :: Anchor ( None ) , RenderMode :: Normal ,
2692+ implementor. impl_item . stable_since ( ) , false , Some ( use_absolute) ) ?;
27082693 Ok ( ( ) )
27092694}
27102695
@@ -2715,7 +2700,7 @@ fn render_impls(cx: &Context, w: &mut fmt::Formatter,
27152700 let did = i. trait_did ( ) . unwrap ( ) ;
27162701 let assoc_link = AssocItemLink :: GotoSource ( did, & i. inner_impl ( ) . provided_trait_methods ) ;
27172702 render_impl ( w, cx, i, assoc_link,
2718- RenderMode :: Normal , containing_item. stable_since ( ) , true ) ?;
2703+ RenderMode :: Normal , containing_item. stable_since ( ) , true , None ) ?;
27192704 }
27202705 Ok ( ( ) )
27212706}
@@ -2907,14 +2892,14 @@ fn item_trait(
29072892 <h2 id='implementors' class='small-section-header'>\
29082893 Implementors<a href='#implementors' class='anchor'></a>\
29092894 </h2>\
2910- <ul class='item-list' id='implementors-list'>\
2895+ <div class='item-list' id='implementors-list'>\
29112896 ";
29122897
29132898 let synthetic_impl_header = "\
29142899 <h2 id='synthetic-implementors' class='small-section-header'>\
29152900 Auto implementors<a href='#synthetic-implementors' class='anchor'></a>\
29162901 </h2>\
2917- <ul class='item-list' id='synthetic-implementors-list'>\
2902+ <div class='item-list' id='synthetic-implementors-list'>\
29182903 ";
29192904
29202905 let mut synthetic_types = Vec :: new ( ) ;
@@ -2964,7 +2949,8 @@ fn item_trait(
29642949 & implementor. inner_impl ( ) . provided_trait_methods
29652950 ) ;
29662951 render_impl ( w, cx, & implementor, assoc_link,
2967- RenderMode :: Normal , implementor. impl_item . stable_since ( ) , false ) ?;
2952+ RenderMode :: Normal , implementor. impl_item . stable_since ( ) , false ,
2953+ None ) ?;
29682954 }
29692955 }
29702956 }
@@ -2973,7 +2959,7 @@ fn item_trait(
29732959 for implementor in concrete {
29742960 render_implementor ( cx, implementor, w, & implementor_dups) ?;
29752961 }
2976- write ! ( w, "</ul >" ) ?;
2962+ write ! ( w, "</div >" ) ?;
29772963
29782964 if t. auto {
29792965 write ! ( w, "{}" , synthetic_impl_header) ?;
@@ -2983,17 +2969,17 @@ fn item_trait(
29832969 ) ;
29842970 render_implementor ( cx, implementor, w, & implementor_dups) ?;
29852971 }
2986- write ! ( w, "</ul >" ) ?;
2972+ write ! ( w, "</div >" ) ?;
29872973 }
29882974 } else {
29892975 // even without any implementations to write in, we still want the heading and list, so the
29902976 // implementors javascript file pulled in below has somewhere to write the impls into
29912977 write ! ( w, "{}" , impl_header) ?;
2992- write ! ( w, "</ul >" ) ?;
2978+ write ! ( w, "</div >" ) ?;
29932979
29942980 if t. auto {
29952981 write ! ( w, "{}" , synthetic_impl_header) ?;
2996- write ! ( w, "</ul >" ) ?;
2982+ write ! ( w, "</div >" ) ?;
29972983 }
29982984 }
29992985 write ! ( w, r#"<script type="text/javascript">window.inlined_types=new Set({});</script>"# ,
@@ -3616,7 +3602,7 @@ fn render_assoc_items(w: &mut fmt::Formatter,
36163602 } ;
36173603 for i in & non_trait {
36183604 render_impl ( w, cx, i, AssocItemLink :: Anchor ( None ) , render_mode,
3619- containing_item. stable_since ( ) , true ) ?;
3605+ containing_item. stable_since ( ) , true , None ) ?;
36203606 }
36213607 }
36223608 if let AssocItemRender :: DerefFor { .. } = what {
@@ -3797,15 +3783,32 @@ fn spotlight_decl(decl: &clean::FnDecl) -> Result<String, fmt::Error> {
37973783
37983784fn render_impl ( w : & mut fmt:: Formatter , cx : & Context , i : & Impl , link : AssocItemLink ,
37993785 render_mode : RenderMode , outer_version : Option < & str > ,
3800- show_def_docs : bool ) -> fmt:: Result {
3786+ show_def_docs : bool , use_absolute : Option < bool > ) -> fmt:: Result {
38013787 if render_mode == RenderMode :: Normal {
38023788 let id = cx. derive_id ( match i. inner_impl ( ) . trait_ {
38033789 Some ( ref t) => format ! ( "impl-{}" , small_url_encode( & format!( "{:#}" , t) ) ) ,
38043790 None => "impl" . to_string ( ) ,
38053791 } ) ;
3806- write ! ( w, "<h3 id='{}' class='impl'><span class='in-band'><table class='table-display'>\
3807- <tbody><tr><td><code>{}</code>",
3808- id, i. inner_impl( ) ) ?;
3792+ if let Some ( use_absolute) = use_absolute {
3793+ write ! ( w, "<h3 id='{}' class='impl'><span class='in-band'><table class='table-display'>\
3794+ <tbody><tr><td><code>", id) ?;
3795+ fmt_impl_for_trait_page ( & i. inner_impl ( ) , w, use_absolute) ?;
3796+ if show_def_docs {
3797+ for it in & i. inner_impl ( ) . items {
3798+ if let clean:: TypedefItem ( ref tydef, _) = it. inner {
3799+ write ! ( w, "<span class=\" where fmt-newline\" > " ) ?;
3800+ assoc_type ( w, it, & vec ! [ ] , Some ( & tydef. type_ ) ,
3801+ AssocItemLink :: Anchor ( None ) ) ?;
3802+ write ! ( w, ";</span>" ) ?;
3803+ }
3804+ }
3805+ }
3806+ write ! ( w, "</code>" ) ?;
3807+ } else {
3808+ write ! ( w, "<h3 id='{}' class='impl'><span class='in-band'><table class='table-display'>\
3809+ <tbody><tr><td><code>{}</code>",
3810+ id, i. inner_impl( ) ) ?;
3811+ }
38093812 write ! ( w, "<a href='#{}' class='anchor'></a>" , id) ?;
38103813 write ! ( w, "</span></td><td><span class='out-of-band'>" ) ?;
38113814 let since = i. impl_item . stability . as_ref ( ) . map ( |s| & s. since [ ..] ) ;
@@ -3929,10 +3932,6 @@ fn render_impl(w: &mut fmt::Formatter, cx: &Context, i: &Impl, link: AssocItemLi
39293932 let traits = & cache ( ) . traits ;
39303933 let trait_ = i. trait_did ( ) . map ( |did| & traits[ & did] ) ;
39313934
3932- if !show_def_docs {
3933- write ! ( w, "<span class='docblock autohide'>" ) ?;
3934- }
3935-
39363935 write ! ( w, "<div class='impl-items'>" ) ?;
39373936 for trait_item in & i. inner_impl ( ) . items {
39383937 doc_impl_item ( w, cx, trait_item, link, render_mode,
@@ -3968,10 +3967,6 @@ fn render_impl(w: &mut fmt::Formatter, cx: &Context, i: &Impl, link: AssocItemLi
39683967 }
39693968 write ! ( w, "</div>" ) ?;
39703969
3971- if !show_def_docs {
3972- write ! ( w, "</span>" ) ?;
3973- }
3974-
39753970 Ok ( ( ) )
39763971}
39773972
0 commit comments