diff --git a/src/librustdoc/html/render.rs b/src/librustdoc/html/render.rs index ddb14d6944b9d..b4db409f40671 100644 --- a/src/librustdoc/html/render.rs +++ b/src/librustdoc/html/render.rs @@ -1704,7 +1704,7 @@ fn item_trait(w: &mut fmt::Formatter, cx: &Context, it: &clean::Item, try!(write!(w, "{{\n")); for t in types.iter() { try!(write!(w, " ")); - try!(render_method(w, t.item())); + try!(render_method(w, t.item(), cx.current.connect(",").as_slice())); try!(write!(w, ";\n")); } if types.len() > 0 && required.len() > 0 { @@ -1712,7 +1712,7 @@ fn item_trait(w: &mut fmt::Formatter, cx: &Context, it: &clean::Item, } for m in required.iter() { try!(write!(w, " ")); - try!(render_method(w, m.item())); + try!(render_method(w, m.item(), cx.current.connect(",").as_slice())); try!(write!(w, ";\n")); } if required.len() > 0 && provided.len() > 0 { @@ -1720,7 +1720,7 @@ fn item_trait(w: &mut fmt::Formatter, cx: &Context, it: &clean::Item, } for m in provided.iter() { try!(write!(w, " ")); - try!(render_method(w, m.item())); + try!(render_method(w, m.item(), cx.current.connect(",").as_slice())); try!(write!(w, " {{ ... }}\n")); } try!(write!(w, "}}")); @@ -1732,11 +1732,16 @@ fn item_trait(w: &mut fmt::Formatter, cx: &Context, it: &clean::Item, fn trait_item(w: &mut fmt::Formatter, m: &clean::TraitMethod) -> fmt::Result { + let ctx_s: &str = match m.item().name { + Some(ref name) => name.as_slice(), + None => "" + }; + try!(write!(w, "
",
shortty(m.item()),
*m.item().name.as_ref().unwrap(),
ConciseStability(&m.item().stability)));
- try!(render_method(w, m.item()));
+ try!(render_method(w, m.item(), ctx_s));
try!(write!(w, "
impl{} ",
ConciseStability(&i.stability),
i.impl_.generics));
- match i.impl_.trait_ {
- Some(ref ty) => try!(write!(w, "{} for ", *ty)),
- None => {}
- }
+ let method_context = format!("{}:{}",
+ i.impl_.for_,
+ match i.impl_.trait_ {
+ Some(ref ty) => {try!(write!(w, "{} for ", *ty));
+ format!("{}", *ty)},
+ None => String::from_str("")
+ });
try!(write!(w, "{}{}
",
+ try!(write!(w, "{}",
+ method_context,
*item.name.as_ref().unwrap(),
shortty(item),
ConciseStability(&item.stability)));
- try!(render_method(w, item));
+ try!(render_method(w, item, method_context));
try!(write!(w, "
\n"));
}
clean::TypedefItem(ref tydef) => {
@@ -2140,12 +2153,13 @@ fn render_impl(w: &mut fmt::Formatter, i: &Impl) -> fmt::Result {
try!(write!(w, ""));
for trait_item in i.impl_.items.iter() {
- try!(doctraititem(w, trait_item, true));
+ try!(doctraititem(w, trait_item, true, method_context.as_slice()));
}
- fn render_default_methods(w: &mut fmt::Formatter,
- t: &clean::Trait,
- i: &clean::Impl) -> fmt::Result {
+ fn render_default_methods(w: &mut fmt::Formatter,
+ t: &clean::Trait,
+ i: &clean::Impl,
+ method_context: &str) -> fmt::Result {
for trait_item in t.items.iter() {
let n = trait_item.item().name.clone();
match i.items.iter().find(|m| { m.name == n }) {
@@ -2153,7 +2167,7 @@ fn render_impl(w: &mut fmt::Formatter, i: &Impl) -> fmt::Result {
None => {}
}
- try!(doctraititem(w, trait_item.item(), false));
+ try!(doctraititem(w, trait_item.item(), false, method_context.as_slice()));
}
Ok(())
}
@@ -2166,7 +2180,10 @@ fn render_impl(w: &mut fmt::Formatter, i: &Impl) -> fmt::Result {
Some(clean::ResolvedPath { did, .. }) => {
try!({
match cache().traits.get(&did) {
- Some(t) => try!(render_default_methods(w, t, &i.impl_)),
+ Some(t) => try!(render_default_methods(w,
+ t,
+ &i.impl_,
+ method_context.as_slice())),
None => {}
}
Ok(())