rustdoc: Write markdown for impls
This commit is contained in:
parent
f9f9388874
commit
77824cf2ed
1 changed files with 96 additions and 1 deletions
|
@ -138,7 +138,7 @@ fn write_mod_contents(
|
||||||
doc::enumtag(enumdoc) { write_enum(ctxt, enumdoc) }
|
doc::enumtag(enumdoc) { write_enum(ctxt, enumdoc) }
|
||||||
doc::restag(resdoc) { write_res(ctxt, resdoc) }
|
doc::restag(resdoc) { write_res(ctxt, resdoc) }
|
||||||
doc::ifacetag(ifacedoc) { write_iface(ctxt, ifacedoc) }
|
doc::ifacetag(ifacedoc) { write_iface(ctxt, ifacedoc) }
|
||||||
doc::impltag(impldoc) { fail }
|
doc::impltag(impldoc) { write_impl(ctxt, impldoc) }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -648,6 +648,101 @@ fn should_write_iface_method_failure_conditions() {
|
||||||
assert str::contains(markdown, "Failure conditions: nuked");
|
assert str::contains(markdown, "Failure conditions: nuked");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn write_impl(ctxt: ctxt, doc: doc::impldoc) {
|
||||||
|
assert option::is_some(doc.self_ty);
|
||||||
|
let self_ty = option::get(doc.self_ty);
|
||||||
|
alt doc.iface_ty {
|
||||||
|
some(iface_ty) {
|
||||||
|
write_header(ctxt, h2,
|
||||||
|
#fmt("Implementation `%s` of `%s` for `%s`",
|
||||||
|
doc.name, iface_ty, self_ty));
|
||||||
|
}
|
||||||
|
none {
|
||||||
|
write_header(ctxt, h2,
|
||||||
|
#fmt("Implementation `%s` for `%s`",
|
||||||
|
doc.name, self_ty));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
write_brief(ctxt, doc.brief);
|
||||||
|
write_desc(ctxt, doc.desc);
|
||||||
|
write_methods(ctxt, doc.methods);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn should_write_impl_header() {
|
||||||
|
let markdown = test::render("impl i for int { fn a() { } }");
|
||||||
|
assert str::contains(markdown, "## Implementation `i` for `int`");
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn should_write_impl_header_with_iface() {
|
||||||
|
let markdown = test::render("impl i of j for int { fn a() { } }");
|
||||||
|
assert str::contains(markdown, "## Implementation `i` of `j` for `int`");
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn should_write_impl_brief() {
|
||||||
|
let markdown = test::render(
|
||||||
|
"#[doc(brief = \"brief\")] impl i for int { fn a() { } }");
|
||||||
|
assert str::contains(markdown, "brief");
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn should_write_impl_desc() {
|
||||||
|
let markdown = test::render(
|
||||||
|
"#[doc(desc = \"desc\")] impl i for 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() { } }");
|
||||||
|
assert str::contains(markdown, "### Method `a`");
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn should_write_impl_method_signature() {
|
||||||
|
let markdown = test::render(
|
||||||
|
"impl i for int { fn a() { } }");
|
||||||
|
assert str::contains(markdown, "\n fn a()");
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn should_write_impl_method_argument_header() {
|
||||||
|
let markdown = test::render(
|
||||||
|
"impl a for int { fn a(b: int) { } }");
|
||||||
|
assert str::contains(markdown, "\n\nArguments:\n\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn should_write_impl_method_arguments() {
|
||||||
|
let markdown = test::render(
|
||||||
|
"impl a for int { fn a(b: int) { } }");
|
||||||
|
assert str::contains(markdown, "* `b`: `int`\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn should_not_write_impl_method_arguments_if_none() {
|
||||||
|
let markdown = test::render(
|
||||||
|
"impl a for int { fn a() { } }");
|
||||||
|
assert !str::contains(markdown, "Arguments");
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn should_write_impl_method_return_info() {
|
||||||
|
let markdown = test::render(
|
||||||
|
"impl a for int { fn a() -> int { } }");
|
||||||
|
assert str::contains(markdown, "Returns `int`");
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn should_write_impl_method_failure_conditions() {
|
||||||
|
let markdown = test::render(
|
||||||
|
"impl a for int { #[doc(failure = \"nuked\")] fn a() { } }");
|
||||||
|
assert str::contains(markdown, "Failure conditions: nuked");
|
||||||
|
}
|
||||||
|
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
mod test {
|
mod test {
|
||||||
fn render(source: str) -> str {
|
fn render(source: str) -> str {
|
||||||
|
|
Loading…
Reference in a new issue