about summary refs log tree commit diff
path: root/src/rustdoc/markdown_pass.rs
diff options
context:
space:
mode:
authorBrian Anderson <banderson@mozilla.com>2012-08-08 17:19:06 -0700
committerBrian Anderson <banderson@mozilla.com>2012-08-08 18:19:26 -0700
commitab71c183b9120db520abaf162da8095249f64b02 (patch)
tree59a7221bb64917258ef1baee75ba8f00aeac84cf /src/rustdoc/markdown_pass.rs
parent99a571585c47dd90badb44d366c9ff4d2c43b296 (diff)
downloadrust-ab71c183b9120db520abaf162da8095249f64b02.tar.gz
rust-ab71c183b9120db520abaf162da8095249f64b02.zip
rustdoc: Update for new impl syntax
Diffstat (limited to 'src/rustdoc/markdown_pass.rs')
-rw-r--r--src/rustdoc/markdown_pass.rs30
1 files changed, 22 insertions, 8 deletions
diff --git a/src/rustdoc/markdown_pass.rs b/src/rustdoc/markdown_pass.rs
index 6ddd8f29b65..4ac2646f1a0 100644
--- a/src/rustdoc/markdown_pass.rs
+++ b/src/rustdoc/markdown_pass.rs
@@ -241,7 +241,21 @@ fn header_name(doc: doc::itemtag) -> ~str {
 }
 
 fn header_text(doc: doc::itemtag) -> ~str {
-    header_text_(header_kind(doc), header_name(doc))
+    match doc {
+      doc::impltag(impldoc) => {
+        let header_kind = header_kind(doc);
+        let desc = if impldoc.trait_types.is_empty() {
+            fmt!{"for `%s`", impldoc.self_ty.get()}
+        } else {
+            fmt!{"of `%s` for `%s`", impldoc.trait_types[0],
+                 impldoc.self_ty.get()}
+        };
+        fmt!{"%s %s", header_kind, desc}
+      }
+      _ => {
+        header_text_(header_kind(doc), header_name(doc))
+      }
+    }
 }
 
 fn header_text_(kind: ~str, name: ~str) -> ~str {
@@ -697,34 +711,34 @@ fn write_impl(ctxt: ctxt, doc: doc::impldoc) {
 
 #[test]
 fn should_write_impl_header() {
-    let markdown = test::render(~"impl i for int { fn a() { } }");
-    assert str::contains(markdown, ~"## Implementation `i for int`");
+    let markdown = test::render(~"impl int { fn a() { } }");
+    assert str::contains(markdown, ~"## Implementation for `int`");
 }
 
 #[test]
 fn should_write_impl_header_with_trait() {
-    let markdown = test::render(~"impl i of j for int { fn a() { } }");
-    assert str::contains(markdown, ~"## Implementation `i of j for int`");
+    let markdown = test::render(~"impl int: j { fn a() { } }");
+    assert str::contains(markdown, ~"## Implementation of `j` for `int`");
 }
 
 #[test]
 fn should_write_impl_desc() {
     let markdown = test::render(
-        ~"#[doc = \"desc\"] impl i for int { fn a() { } }");
+        ~"#[doc = \"desc\"] impl int { fn a() { } }");
     assert str::contains(markdown, ~"desc");
 }
 
 #[test]
 fn should_write_impl_method_header() {
     let markdown = test::render(
-        ~"impl i for int { fn a() { } }");
+        ~"impl int { fn a() { } }");
     assert str::contains(markdown, ~"### Method `a`");
 }
 
 #[test]
 fn should_write_impl_method_signature() {
     let markdown = test::render(
-        ~"impl i for int { fn a() { } }");
+        ~"impl int { fn a() { } }");
     assert str::contains(markdown, ~"\n    fn a()");
 }