From 22d182acd75f2fbb00bc2e90878ac24589820625 Mon Sep 17 00:00:00 2001 From: Brian Anderson Date: Mon, 16 Jan 2012 16:01:33 -0800 Subject: [PATCH] rustdoc: Remove attribute parsing from extract module --- src/rustdoc/attr_parser.rs | 25 ++++++------------------- src/rustdoc/doc.rs | 2 +- src/rustdoc/extract.rs | 26 +++++++++++++++----------- src/rustdoc/gen.rs | 7 ++++++- 4 files changed, 28 insertions(+), 32 deletions(-) diff --git a/src/rustdoc/attr_parser.rs b/src/rustdoc/attr_parser.rs index fc520ee4d3a..8eab5030ba4 100644 --- a/src/rustdoc/attr_parser.rs +++ b/src/rustdoc/attr_parser.rs @@ -15,7 +15,7 @@ fn parse_fn( _fndoc = some(~{ id: id, name: name, - brief: value, + brief: some(value), desc: none, return: none, args: [] @@ -34,7 +34,7 @@ fn parse_fn( ~{ id: id, name: name, - brief: "_undocumented_", + brief: none, desc: none, return: none, args: [] @@ -102,15 +102,10 @@ fn parse_fn_( } } - let _brief = alt brief { - some(_b) { _b } - none. { "_undocumented_" } - }; - ~{ id: id, name: name, - brief: _brief, + brief: brief, desc: desc, return: some({ desc: return, @@ -144,7 +139,7 @@ mod tests { let source = ""; let attrs = parse_attributes(source); let doc = parse_fn("f", 0, attrs); - assert doc.brief == "_undocumented_"; + assert doc.brief == none; assert doc.desc == none; assert doc.return == none; assert vec::len(doc.args) == 0u; @@ -155,7 +150,7 @@ mod tests { let source = "#[doc = \"basic\"]"; let attrs = parse_attributes(source); let doc = parse_fn("f", 0, attrs); - assert doc.brief == "basic"; + assert doc.brief == some("basic"); } #[test] @@ -163,7 +158,7 @@ mod tests { let source = "#[doc(brief = \"short\")]"; let attrs = parse_attributes(source); let doc = parse_fn("f", 0, attrs); - assert doc.brief == "short"; + assert doc.brief == some("short"); } #[test] @@ -190,12 +185,4 @@ mod tests { assert doc.args[0] == ("a", "arg a"); assert doc.args[1] == ("b", "arg b"); } - - #[test] - fn parse_fn_should_set_brief_desc_to_undocumented_if_not_exists() { - let source = "#[doc(desc = \"long desc\")]"; - let attrs = parse_attributes(source); - let doc = parse_fn("f", 0, attrs); - assert doc.brief == "_undocumented_"; - } } \ No newline at end of file diff --git a/src/rustdoc/doc.rs b/src/rustdoc/doc.rs index 6ca7cf1d52f..8dd165cf959 100644 --- a/src/rustdoc/doc.rs +++ b/src/rustdoc/doc.rs @@ -13,7 +13,7 @@ type moddoc = ~{ type fndoc = ~{ id: ast_id, name: str, - brief: str, + brief: option, desc: option, return: option, args: [(str, str)] diff --git a/src/rustdoc/extract.rs b/src/rustdoc/extract.rs index 5caa0d59913..024dd7809c5 100644 --- a/src/rustdoc/extract.rs +++ b/src/rustdoc/extract.rs @@ -17,13 +17,12 @@ fn top_moddoc_from_crate( crate: @ast::crate, default_name: str ) -> doc::moddoc { - moddoc_from_mod(crate.node.module, default_name, crate.node.attrs) + moddoc_from_mod(crate.node.module, default_name) } fn moddoc_from_mod( module: ast::_mod, - name: ast::ident, - _attrs: [ast::attribute] + name: ast::ident ) -> doc::moddoc { ~{ name: name, @@ -31,7 +30,7 @@ fn moddoc_from_mod( vec::filter_map(module.items) {|item| alt item.node { ast::item_mod(m) { - some(moddoc_from_mod(m, item.ident, item.attrs)) + some(moddoc_from_mod(m, item.ident)) } _ { none @@ -41,9 +40,9 @@ fn moddoc_from_mod( fns: doc::fnlist( vec::filter_map(module.items) {|item| alt item.node { - ast::item_fn(decl, typarams, _) { + ast::item_fn(decl, _, _) { some(fndoc_from_fn( - decl, typarams, item.ident, item.id, item.attrs)) + decl, item.ident, item.id)) } _ { none @@ -55,12 +54,17 @@ fn moddoc_from_mod( fn fndoc_from_fn( _decl: ast::fn_decl, - _typarams: [ast::ty_param], name: ast::ident, - id: ast::node_id, - attrs: [ast::attribute] + id: ast::node_id ) -> doc::fndoc { - attr_parser::parse_fn(name, id, attrs) + ~{ + id: id, + name: name, + brief: none, + desc: none, + return: none, + args: [] + } } #[cfg(test)] @@ -114,7 +118,7 @@ mod tests { } #[test] - fn extract_should_use_default_crate_name_if_no_link_name_exists() { + fn extract_should_use_default_crate_name() { let source = ""; let ast = parse::from_str(source); let doc = extract(ast, "burp"); diff --git a/src/rustdoc/gen.rs b/src/rustdoc/gen.rs index ec2083bea25..d83463e471e 100644 --- a/src/rustdoc/gen.rs +++ b/src/rustdoc/gen.rs @@ -55,7 +55,12 @@ fn write_fn( doc: doc::fndoc ) { ctxt.w.write_line("## Function `" + doc.name + "`"); - ctxt.w.write_line(doc.brief); + alt doc.brief { + some(brief) { + ctxt.w.write_line(brief); + } + none. { } + } alt doc.desc { some(_d) { ctxt.w.write_line("");