mirror of
https://github.com/rust-lang/rust.git
synced 2026-03-27 15:06:50 +00:00
rustdoc: Ignore nil-typed return values
This commit is contained in:
@@ -204,6 +204,27 @@ fn write_return(
|
||||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn should_write_return_type_on_new_line() {
|
||||
let markdown = test::render("fn a() -> int { }");
|
||||
assert str::contains(markdown, "\nReturns `int`");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn should_write_blank_line_between_return_type_and_next_header() {
|
||||
let markdown = test::render(
|
||||
"fn a() -> int { } \
|
||||
fn b() -> int { }"
|
||||
);
|
||||
assert str::contains(markdown, "Returns `int`\n\n##");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn should_not_write_return_type_when_there_is_none() {
|
||||
let markdown = test::render("fn a() { }");
|
||||
assert !str::contains(markdown, "Returns");
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod test {
|
||||
fn render(source: str) -> str {
|
||||
@@ -272,18 +293,4 @@ mod test {
|
||||
assert str::contains(markdown, "brief\n\ndesc");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn should_write_return_type_on_new_line() {
|
||||
let markdown = render("fn a() -> int { }");
|
||||
assert str::contains(markdown, "\nReturns `int`");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn should_write_blank_line_between_return_type_and_next_header() {
|
||||
let markdown = render(
|
||||
"fn a() -> int { } \
|
||||
fn b() -> int { }"
|
||||
);
|
||||
assert str::contains(markdown, "Returns `int`\n\n##");
|
||||
}
|
||||
}
|
||||
@@ -46,27 +46,36 @@ fn merge_ret_ty(
|
||||
fn_id: doc::ast_id,
|
||||
doc: option<doc::retdoc>
|
||||
) -> option<doc::retdoc> {
|
||||
let ty = get_ret_ty(srv, fn_id);
|
||||
alt doc {
|
||||
some(doc) {
|
||||
fail "unimplemented";
|
||||
}
|
||||
none. {
|
||||
some({
|
||||
desc: none,
|
||||
ty: some(ty)
|
||||
})
|
||||
alt get_ret_ty(srv, fn_id) {
|
||||
some(ty) {
|
||||
some({
|
||||
desc: none,
|
||||
ty: some(ty)
|
||||
})
|
||||
}
|
||||
none. { none }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fn get_ret_ty(srv: astsrv::srv, id: doc::ast_id) -> str {
|
||||
fn get_ret_ty(srv: astsrv::srv, id: doc::ast_id) -> option<str> {
|
||||
astsrv::exec(srv) {|ctxt|
|
||||
alt ctxt.map.get(id) {
|
||||
ast_map::node_item(@{
|
||||
node: ast::item_fn(decl, _, _), _
|
||||
}) {
|
||||
pprust::ty_to_str(decl.output)
|
||||
if decl.output.node != ast::ty_nil {
|
||||
some(pprust::ty_to_str(decl.output))
|
||||
} else {
|
||||
// Nil-typed return values are not interesting
|
||||
none
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -81,6 +90,15 @@ fn should_add_fn_ret_types() {
|
||||
assert option::get(doc.topmod.fns[0].return).ty == some("int");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn should_not_add_nil_ret_type() {
|
||||
let source = "fn a() { }";
|
||||
let srv = astsrv::mk_srv_from_str(source);
|
||||
let doc = extract::from_srv(srv, "");
|
||||
let doc = run(srv, doc);
|
||||
assert doc.topmod.fns[0].return == none;
|
||||
}
|
||||
|
||||
fn merge_arg_tys(
|
||||
srv: astsrv::srv,
|
||||
fn_id: doc::ast_id,
|
||||
|
||||
Reference in New Issue
Block a user