提交 92f63b90 编写于 作者: B Brian Anderson

rustdoc: Merge the crate's name attribute into the doc tree

上级 60b475ea
......@@ -20,6 +20,12 @@ fn run(
doc: doc::cratedoc
) -> doc::cratedoc {
let fold = fold::fold({
fold_crate: fn~(
f: fold::fold<astsrv::srv>,
d: doc::cratedoc
) -> doc::cratedoc {
fold_crate(f, d)
},
fold_fn: fn~(
f: fold::fold<astsrv::srv>,
d: doc::fndoc
......@@ -31,6 +37,38 @@ fn run(
fold.fold_crate(fold, doc)
}
fn fold_crate(
fold: fold::fold<astsrv::srv>,
doc: doc::cratedoc
) -> doc::cratedoc {
let srv = fold.ctxt;
let doc = fold::default_seq_fold_crate(fold, doc);
let attrs = astsrv::exec(srv) {|ctxt|
let attrs = ctxt.ast.node.attrs;
attr_parser::parse_crate(attrs)
};
~{
topmod: ~{
name: option::from_maybe(doc.topmod.name, attrs.name),
mods: doc.topmod.mods,
fns: doc.topmod.fns
}
}
}
#[test]
fn should_replace_top_module_name_with_crate_name() {
let source = "#[link(name = \"bond\")];";
let srv = astsrv::mk_srv_from_str(source);
let doc = extract::from_srv(srv, "");
let fold = fold::default_seq_fold(srv);
let doc = fold_crate(fold, doc);
assert doc.topmod.name == "bond";
}
fn fold_fn(
fold: fold::fold<astsrv::srv>,
doc: doc::fndoc
......
export fold;
export fold_crate, fold_mod, fold_fn, fold_modlist, fold_fnlist;
export default_seq_fold;
export default_seq_fold_crate;
export default_seq_fold_fn;
export default_seq_fold_fnlist;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册