diff options
| author | Brian Anderson <banderson@mozilla.com> | 2012-01-18 16:09:32 -0800 |
|---|---|---|
| committer | Brian Anderson <banderson@mozilla.com> | 2012-01-18 16:09:32 -0800 |
| commit | f3fa7c15552294fba231ca8add5c113c8e6dd15c (patch) | |
| tree | 60aa81291813579a0a433dd3e1b9450adaa8d7db /src | |
| parent | cbd7e8ed1bfe65b9559d46ff9fdf2e0939729fa8 (diff) | |
rustdoc: Extract functions from tystr_pass::fold_fn
Diffstat (limited to 'src')
| -rw-r--r-- | src/rustdoc/tystr_pass.rs | 64 |
1 files changed, 32 insertions, 32 deletions
diff --git a/src/rustdoc/tystr_pass.rs b/src/rustdoc/tystr_pass.rs index f94024047c0..6fad1e1e931 100644 --- a/src/rustdoc/tystr_pass.rs +++ b/src/rustdoc/tystr_pass.rs @@ -33,49 +33,49 @@ fn fold_fn( ) -> doc::fndoc { let srv = fold.ctxt; + let ret_ty = get_ret_ty(srv, doc.id); - fn add_ret_ty( - doc: option<doc::retdoc>, - tystr: str - ) -> option<doc::retdoc> { - alt doc { - some(doc) { - fail "unimplemented"; - } - none. { - some({ - desc: none, - ty: some(tystr) - }) - } - } + ~{ + return: merge_ret_ty(doc.return, ret_ty) + with *doc } +} - let retty = astsrv::exec(srv) {|ctxt| - alt ctxt.map.get(doc.id) { +fn get_ret_ty(srv: astsrv::srv, id: doc::ast_id) -> 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) } } - }; - - ~{ - return: add_ret_ty(doc.return, retty) - with *doc } } -#[cfg(test)] -mod tests { - - #[test] - fn should_add_fn_ret_types() { - let source = "fn a() -> int { }"; - let srv = astsrv::mk_srv_from_str(source); - let doc = extract::from_srv(srv, ""); - let doc = run(srv, doc); - assert option::get(doc.topmod.fns[0].return).ty == some("int"); +fn merge_ret_ty( + doc: option<doc::retdoc>, + tystr: str +) -> option<doc::retdoc> { + alt doc { + some(doc) { + fail "unimplemented"; + } + none. { + some({ + desc: none, + ty: some(tystr) + }) + } } } + +#[test] +fn should_add_fn_ret_types() { + let source = "fn a() -> int { }"; + let srv = astsrv::mk_srv_from_str(source); + let doc = extract::from_srv(srv, ""); + let doc = run(srv, doc); + assert option::get(doc.topmod.fns[0].return).ty == some("int"); +} + |
