rustdoc: Remove attribute parsing from extract module

This commit is contained in:
Brian Anderson 2012-01-16 16:01:33 -08:00
parent 04294e437b
commit 22d182acd7
4 changed files with 28 additions and 32 deletions

View file

@ -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_";
}
}

View file

@ -13,7 +13,7 @@ type moddoc = ~{
type fndoc = ~{
id: ast_id,
name: str,
brief: str,
brief: option<str>,
desc: option<str>,
return: option<retdoc>,
args: [(str, str)]

View file

@ -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");

View file

@ -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("");