@@ -1704,23 +1704,23 @@ fn item_trait(w: &mut fmt::Formatter, cx: &Context, it: &clean::Item,
1704
1704
try!( write ! ( w, "{{\n " ) ) ;
1705
1705
for t in types. iter ( ) {
1706
1706
try!( write ! ( w, " " ) ) ;
1707
- try!( render_method ( w, t. item ( ) ) ) ;
1707
+ try!( render_method ( w, t. item ( ) , cx . current . connect ( "," ) . as_slice ( ) ) ) ;
1708
1708
try!( write ! ( w, ";\n " ) ) ;
1709
1709
}
1710
1710
if types. len ( ) > 0 && required. len ( ) > 0 {
1711
1711
try!( w. write_str ( "\n " ) ) ;
1712
1712
}
1713
1713
for m in required. iter ( ) {
1714
1714
try!( write ! ( w, " " ) ) ;
1715
- try!( render_method ( w, m. item ( ) ) ) ;
1715
+ try!( render_method ( w, m. item ( ) , cx . current . connect ( "," ) . as_slice ( ) ) ) ;
1716
1716
try!( write ! ( w, ";\n " ) ) ;
1717
1717
}
1718
1718
if required. len ( ) > 0 && provided. len ( ) > 0 {
1719
1719
try!( w. write_str ( "\n " ) ) ;
1720
1720
}
1721
1721
for m in provided. iter ( ) {
1722
1722
try!( write ! ( w, " " ) ) ;
1723
- try!( render_method ( w, m. item ( ) ) ) ;
1723
+ try!( render_method ( w, m. item ( ) , cx . current . connect ( "," ) . as_slice ( ) ) ) ;
1724
1724
try!( write ! ( w, " {{ ... }}\n " ) ) ;
1725
1725
}
1726
1726
try!( write ! ( w, "}}" ) ) ;
@@ -1732,11 +1732,16 @@ fn item_trait(w: &mut fmt::Formatter, cx: &Context, it: &clean::Item,
1732
1732
1733
1733
fn trait_item ( w : & mut fmt:: Formatter , m : & clean:: TraitMethod )
1734
1734
-> fmt:: Result {
1735
+ let ctx_s: & str = match m. item ( ) . name {
1736
+ Some ( ref name) => name. as_slice ( ) ,
1737
+ None => ""
1738
+ } ;
1739
+
1735
1740
try!( write ! ( w, "<h3 id='{}.{}' class='method'>{}<code>" ,
1736
1741
shortty( m. item( ) ) ,
1737
1742
* m. item( ) . name. as_ref( ) . unwrap( ) ,
1738
1743
ConciseStability ( & m. item( ) . stability) ) ) ;
1739
- try!( render_method ( w, m. item ( ) ) ) ;
1744
+ try!( render_method ( w, m. item ( ) , ctx_s ) ) ;
1740
1745
try!( write ! ( w, "</code></h3>" ) ) ;
1741
1746
try!( document ( w, m. item ( ) ) ) ;
1742
1747
Ok ( ( ) )
@@ -1806,7 +1811,8 @@ fn item_trait(w: &mut fmt::Formatter, cx: &Context, it: &clean::Item,
1806
1811
Ok ( ( ) )
1807
1812
}
1808
1813
1809
- fn assoc_type ( w : & mut fmt:: Formatter , it : & clean:: Item ,
1814
+ fn assoc_type ( w : & mut fmt:: Formatter ,
1815
+ it : & clean:: Item ,
1810
1816
typ : & clean:: TyParam ) -> fmt:: Result {
1811
1817
try!( write ! ( w, "type {}" , it. name. as_ref( ) . unwrap( ) ) ) ;
1812
1818
if typ. bounds . len ( ) > 0 {
@@ -1843,7 +1849,7 @@ fn render_method(w: &mut fmt::Formatter, meth: &clean::Item, ctx_s: &str) -> fmt
1843
1849
method ( w, meth, ctx_s, m. unsafety , & m. generics , & m. self_ , & m. decl )
1844
1850
}
1845
1851
clean:: AssociatedTypeItem ( ref typ) => {
1846
- assoc_type ( w, meth, ctx_s , typ)
1852
+ assoc_type ( w, meth, typ)
1847
1853
}
1848
1854
_ => panic ! ( "render_method called on non-method" )
1849
1855
}
@@ -2083,17 +2089,16 @@ fn render_methods(w: &mut fmt::Formatter, it: &clean::Item) -> fmt::Result {
2083
2089
}
2084
2090
2085
2091
fn render_impl ( w : & mut fmt:: Formatter , i : & Impl ) -> fmt:: Result {
2086
- let mut method_context: & str = "" ;
2087
-
2088
2092
try!( write ! ( w, "<h3 class='impl'>{}<code>impl{} " ,
2089
2093
ConciseStability ( & i. stability) ,
2090
2094
i. impl_. generics) ) ;
2091
- match i. impl_ . trait_ {
2092
- Some ( ref ty) => { method_context = format ! ( "{}" , * ty) . as_slice ( ) ;
2093
- try!( write ! ( w, "{} for " , * ty) ) } ,
2094
- None => { }
2095
- }
2096
- method_context = format ! ( "{}:{}" , i. impl_. for_, method_context) . as_slice ( ) ;
2095
+ let method_context = format ! ( "{}:{}" ,
2096
+ i. impl_. for_,
2097
+ match i. impl_. trait_ {
2098
+ Some ( ref ty) => { try!( write!( w, "{} for " , * ty) ) ;
2099
+ format!( "{}" , * ty) } ,
2100
+ None => String :: from_str( "" )
2101
+ } ) ;
2097
2102
try!( write ! ( w, "{}{}</code></h3>" , i. impl_. for_, WhereClause ( & i. impl_. generics) ) ) ;
2098
2103
match i. dox {
2099
2104
Some ( ref dox) => {
@@ -2103,8 +2108,10 @@ fn render_impl(w: &mut fmt::Formatter, i: &Impl) -> fmt::Result {
2103
2108
None => { }
2104
2109
}
2105
2110
2106
- fn doctraititem ( w : & mut fmt:: Formatter , item : & clean:: Item , dox : bool )
2107
- -> fmt:: Result {
2111
+ fn doctraititem ( w : & mut fmt:: Formatter ,
2112
+ item : & clean:: Item ,
2113
+ dox : bool ,
2114
+ method_context : & str ) -> fmt:: Result {
2108
2115
match item. inner {
2109
2116
clean:: MethodItem ( ..) | clean:: TyMethodItem ( ..) => {
2110
2117
try!( write ! ( w, "<h4 id='{}:method.{}' class='{}'>{}<code>" ,
@@ -2146,20 +2153,21 @@ fn render_impl(w: &mut fmt::Formatter, i: &Impl) -> fmt::Result {
2146
2153
2147
2154
try!( write ! ( w, "<div class='impl-items'>" ) ) ;
2148
2155
for trait_item in i. impl_ . items . iter ( ) {
2149
- try!( doctraititem ( w, trait_item, true ) ) ;
2156
+ try!( doctraititem ( w, trait_item, true , method_context . as_slice ( ) ) ) ;
2150
2157
}
2151
2158
2152
- fn render_default_methods ( w : & mut fmt:: Formatter ,
2153
- t : & clean:: Trait ,
2154
- i : & clean:: Impl ) -> fmt:: Result {
2159
+ fn render_default_methods ( w : & mut fmt:: Formatter ,
2160
+ t : & clean:: Trait ,
2161
+ i : & clean:: Impl ,
2162
+ method_context : & str ) -> fmt:: Result {
2155
2163
for trait_item in t. items . iter ( ) {
2156
2164
let n = trait_item. item ( ) . name . clone ( ) ;
2157
2165
match i. items . iter ( ) . find ( |m| { m. name == n } ) {
2158
2166
Some ( ..) => continue ,
2159
2167
None => { }
2160
2168
}
2161
2169
2162
- try!( doctraititem ( w, trait_item. item ( ) , false ) ) ;
2170
+ try!( doctraititem ( w, trait_item. item ( ) , false , method_context . as_slice ( ) ) ) ;
2163
2171
}
2164
2172
Ok ( ( ) )
2165
2173
}
@@ -2172,7 +2180,10 @@ fn render_impl(w: &mut fmt::Formatter, i: &Impl) -> fmt::Result {
2172
2180
Some ( clean:: ResolvedPath { did, .. } ) => {
2173
2181
try!( {
2174
2182
match cache ( ) . traits . get ( & did) {
2175
- Some ( t) => try!( render_default_methods ( w, t, & i. impl_ ) ) ,
2183
+ Some ( t) => try!( render_default_methods ( w,
2184
+ t,
2185
+ & i. impl_ ,
2186
+ method_context. as_slice ( ) ) ) ,
2176
2187
None => { }
2177
2188
}
2178
2189
Ok ( ( ) )
0 commit comments