rustdoc: Remove attribute parsing from extract module
This commit is contained in:
parent
04294e437b
commit
22d182acd7
4 changed files with 28 additions and 32 deletions
|
@ -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_";
|
||||
}
|
||||
}
|
|
@ -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)]
|
||||
|
|
|
@ -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");
|
||||
|
|
|
@ -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("");
|
||||
|
|
Loading…
Reference in a new issue