rustdoc: Extract common item fields into itemdoc
This commit is contained in:
parent
d26fc348ef
commit
784e2b7298
@ -49,7 +49,10 @@ fn fold_crate(
|
||||
|
||||
{
|
||||
topmod: {
|
||||
name: option::from_maybe(doc.topmod.name, attrs.name)
|
||||
item: {
|
||||
name: option::from_maybe(doc.topmod.name(), attrs.name)
|
||||
with doc.topmod.item
|
||||
}
|
||||
with doc.topmod
|
||||
}
|
||||
}
|
||||
@ -58,7 +61,7 @@ fn fold_crate(
|
||||
#[test]
|
||||
fn should_replace_top_module_name_with_crate_name() {
|
||||
let doc = test::mk_doc("#[link(name = \"bond\")];");
|
||||
assert doc.topmod.name == "bond";
|
||||
assert doc.topmod.name() == "bond";
|
||||
}
|
||||
|
||||
fn parse_item_attrs<T>(
|
||||
@ -78,13 +81,13 @@ fn parse_item_attrs<T>(
|
||||
|
||||
fn fold_mod(fold: fold::fold<astsrv::srv>, doc: doc::moddoc) -> doc::moddoc {
|
||||
let srv = fold.ctxt;
|
||||
let attrs = if doc.id == ast::crate_node_id {
|
||||
let attrs = if doc.id() == ast::crate_node_id {
|
||||
// This is the top-level mod, use the crate attributes
|
||||
astsrv::exec(srv) {|ctxt|
|
||||
attr_parser::parse_mod(ctxt.ast.node.attrs)
|
||||
}
|
||||
} else {
|
||||
parse_item_attrs(srv, doc.id, attr_parser::parse_mod)
|
||||
parse_item_attrs(srv, doc.id(), attr_parser::parse_mod)
|
||||
};
|
||||
let doc = fold::default_seq_fold_mod(fold, doc);
|
||||
ret merge_mod_attrs(doc, attrs);
|
||||
@ -94,8 +97,11 @@ fn fold_mod(fold: fold::fold<astsrv::srv>, doc: doc::moddoc) -> doc::moddoc {
|
||||
attrs: attr_parser::mod_attrs
|
||||
) -> doc::moddoc {
|
||||
{
|
||||
brief: attrs.brief,
|
||||
desc: attrs.desc
|
||||
item: {
|
||||
brief: attrs.brief,
|
||||
desc: attrs.desc
|
||||
with doc.item
|
||||
}
|
||||
with doc
|
||||
}
|
||||
}
|
||||
@ -104,13 +110,13 @@ fn fold_mod(fold: fold::fold<astsrv::srv>, doc: doc::moddoc) -> doc::moddoc {
|
||||
#[test]
|
||||
fn fold_mod_should_extract_mod_attributes() {
|
||||
let doc = test::mk_doc("#[doc = \"test\"] mod a { }");
|
||||
assert doc.topmod.mods()[0].desc == some("test");
|
||||
assert doc.topmod.mods()[0].desc() == some("test");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn fold_mod_should_extract_top_mod_attributes() {
|
||||
let doc = test::mk_doc("#[doc = \"test\"];");
|
||||
assert doc.topmod.desc == some("test");
|
||||
assert doc.topmod.desc() == some("test");
|
||||
}
|
||||
|
||||
fn fold_fn(
|
||||
@ -120,7 +126,7 @@ fn fold_fn(
|
||||
|
||||
let srv = fold.ctxt;
|
||||
|
||||
let attrs = parse_item_attrs(srv, doc.id, attr_parser::parse_fn);
|
||||
let attrs = parse_item_attrs(srv, doc.id(), attr_parser::parse_fn);
|
||||
ret merge_fn_attrs(doc, attrs);
|
||||
|
||||
fn merge_fn_attrs(
|
||||
@ -128,8 +134,11 @@ fn fold_fn(
|
||||
attrs: attr_parser::fn_attrs
|
||||
) -> doc::fndoc {
|
||||
ret {
|
||||
brief: attrs.brief,
|
||||
desc: attrs.desc,
|
||||
item: {
|
||||
brief: attrs.brief,
|
||||
desc: attrs.desc
|
||||
with doc.item
|
||||
},
|
||||
args: merge_arg_attrs(doc.args, attrs.args),
|
||||
return: merge_ret_attrs(doc.return, attrs.return),
|
||||
failure: attrs.failure
|
||||
@ -172,7 +181,7 @@ fn merge_ret_attrs(
|
||||
#[test]
|
||||
fn fold_fn_should_extract_fn_attributes() {
|
||||
let doc = test::mk_doc("#[doc = \"test\"] fn a() -> int { }");
|
||||
assert doc.topmod.fns()[0].desc == some("test");
|
||||
assert doc.topmod.fns()[0].desc() == some("test");
|
||||
}
|
||||
|
||||
#[test]
|
||||
@ -214,11 +223,14 @@ fn fold_const(
|
||||
doc: doc::constdoc
|
||||
) -> doc::constdoc {
|
||||
let srv = fold.ctxt;
|
||||
let attrs = parse_item_attrs(srv, doc.id, attr_parser::parse_const);
|
||||
let attrs = parse_item_attrs(srv, doc.id(), attr_parser::parse_const);
|
||||
|
||||
{
|
||||
brief: attrs.brief,
|
||||
desc: attrs.desc
|
||||
item: {
|
||||
brief: attrs.brief,
|
||||
desc: attrs.desc
|
||||
with doc.item
|
||||
}
|
||||
with doc
|
||||
}
|
||||
}
|
||||
@ -227,8 +239,8 @@ fn fold_const(
|
||||
fn fold_const_should_extract_docs() {
|
||||
let doc = test::mk_doc("#[doc(brief = \"foo\", desc = \"bar\")]\
|
||||
const a: bool = true;");
|
||||
assert doc.topmod.consts()[0].brief == some("foo");
|
||||
assert doc.topmod.consts()[0].desc == some("bar");
|
||||
assert doc.topmod.consts()[0].brief() == some("foo");
|
||||
assert doc.topmod.consts()[0].desc() == some("bar");
|
||||
}
|
||||
|
||||
fn fold_enum(
|
||||
@ -236,14 +248,17 @@ fn fold_enum(
|
||||
doc: doc::enumdoc
|
||||
) -> doc::enumdoc {
|
||||
let srv = fold.ctxt;
|
||||
let attrs = parse_item_attrs(srv, doc.id, attr_parser::parse_enum);
|
||||
let attrs = parse_item_attrs(srv, doc.id(), attr_parser::parse_enum);
|
||||
|
||||
{
|
||||
brief: attrs.brief,
|
||||
desc: attrs.desc,
|
||||
item: {
|
||||
brief: attrs.brief,
|
||||
desc: attrs.desc
|
||||
with doc.item
|
||||
},
|
||||
variants: vec::map(doc.variants) {|variant|
|
||||
let attrs = astsrv::exec(srv) {|ctxt|
|
||||
alt check ctxt.ast_map.get(doc.id) {
|
||||
alt check ctxt.ast_map.get(doc.id()) {
|
||||
ast_map::node_item(@{
|
||||
node: ast::item_enum(ast_variants, _), _
|
||||
}, _) {
|
||||
@ -270,8 +285,8 @@ fn fold_enum(
|
||||
fn fold_enum_should_extract_docs() {
|
||||
let doc = test::mk_doc("#[doc(brief = \"a\", desc = \"b\")]\
|
||||
enum a { v }");
|
||||
assert doc.topmod.enums()[0].brief == some("a");
|
||||
assert doc.topmod.enums()[0].desc == some("b");
|
||||
assert doc.topmod.enums()[0].brief() == some("a");
|
||||
assert doc.topmod.enums()[0].desc() == some("b");
|
||||
}
|
||||
|
||||
#[test]
|
||||
@ -286,11 +301,14 @@ fn fold_res(
|
||||
) -> doc::resdoc {
|
||||
|
||||
let srv = fold.ctxt;
|
||||
let attrs = parse_item_attrs(srv, doc.id, attr_parser::parse_fn);
|
||||
let attrs = parse_item_attrs(srv, doc.id(), attr_parser::parse_fn);
|
||||
|
||||
{
|
||||
brief: attrs.brief,
|
||||
desc: attrs.desc,
|
||||
item: {
|
||||
brief: attrs.brief,
|
||||
desc: attrs.desc
|
||||
with doc.item
|
||||
},
|
||||
args: vec::map(doc.args) {|doc|
|
||||
alt vec::find(attrs.args) {|attr|
|
||||
attr.name == doc.name
|
||||
@ -312,8 +330,8 @@ fn fold_res(
|
||||
fn fold_res_should_extract_docs() {
|
||||
let doc = test::mk_doc("#[doc(brief = \"a\", desc = \"b\")]\
|
||||
resource r(b: bool) { }");
|
||||
assert doc.topmod.resources()[0].brief == some("a");
|
||||
assert doc.topmod.resources()[0].desc == some("b");
|
||||
assert doc.topmod.resources()[0].brief() == some("a");
|
||||
assert doc.topmod.resources()[0].desc() == some("b");
|
||||
}
|
||||
|
||||
#[test]
|
||||
@ -330,12 +348,15 @@ fn fold_iface(
|
||||
) -> doc::ifacedoc {
|
||||
let srv = fold.ctxt;
|
||||
let doc = fold::default_seq_fold_iface(fold, doc);
|
||||
let attrs = parse_item_attrs(srv, doc.id, attr_parser::parse_iface);
|
||||
let attrs = parse_item_attrs(srv, doc.id(), attr_parser::parse_iface);
|
||||
|
||||
{
|
||||
brief: attrs.brief,
|
||||
desc: attrs.desc,
|
||||
methods: merge_method_attrs(srv, doc.id, doc.methods)
|
||||
item: {
|
||||
brief: attrs.brief,
|
||||
desc: attrs.desc
|
||||
with doc.item
|
||||
},
|
||||
methods: merge_method_attrs(srv, doc.id(), doc.methods)
|
||||
with doc
|
||||
}
|
||||
}
|
||||
@ -384,7 +405,7 @@ fn merge_method_attrs(
|
||||
#[test]
|
||||
fn should_extract_iface_docs() {
|
||||
let doc = test::mk_doc("#[doc = \"whatever\"] iface i { fn a(); }");
|
||||
assert doc.topmod.ifaces()[0].desc == some("whatever");
|
||||
assert doc.topmod.ifaces()[0].desc() == some("whatever");
|
||||
}
|
||||
|
||||
#[test]
|
||||
@ -413,12 +434,15 @@ fn fold_impl(
|
||||
) -> doc::impldoc {
|
||||
let srv = fold.ctxt;
|
||||
let doc = fold::default_seq_fold_impl(fold, doc);
|
||||
let attrs = parse_item_attrs(srv, doc.id, attr_parser::parse_impl);
|
||||
let attrs = parse_item_attrs(srv, doc.id(), attr_parser::parse_impl);
|
||||
|
||||
{
|
||||
brief: attrs.brief,
|
||||
desc: attrs.desc,
|
||||
methods: merge_method_attrs(srv, doc.id, doc.methods)
|
||||
item: {
|
||||
brief: attrs.brief,
|
||||
desc: attrs.desc
|
||||
with doc.item
|
||||
},
|
||||
methods: merge_method_attrs(srv, doc.id(), doc.methods)
|
||||
with doc
|
||||
}
|
||||
}
|
||||
@ -427,7 +451,7 @@ fn fold_impl(
|
||||
fn should_extract_impl_docs() {
|
||||
let doc = test::mk_doc(
|
||||
"#[doc = \"whatever\"] impl i for int { fn a() { } }");
|
||||
assert doc.topmod.impls()[0].desc == some("whatever");
|
||||
assert doc.topmod.impls()[0].desc() == some("whatever");
|
||||
}
|
||||
|
||||
#[test]
|
||||
@ -455,11 +479,14 @@ fn fold_type(
|
||||
) -> doc::tydoc {
|
||||
let srv = fold.ctxt;
|
||||
let doc = fold::default_seq_fold_type(fold, doc);
|
||||
let attrs = parse_item_attrs(srv, doc.id, attr_parser::parse_type);
|
||||
let attrs = parse_item_attrs(srv, doc.id(), attr_parser::parse_type);
|
||||
|
||||
{
|
||||
brief: attrs.brief,
|
||||
desc: attrs.desc
|
||||
item: {
|
||||
brief: attrs.brief,
|
||||
desc: attrs.desc
|
||||
with doc.item
|
||||
}
|
||||
with doc
|
||||
}
|
||||
}
|
||||
@ -469,8 +496,8 @@ fn should_extract_type_docs() {
|
||||
let doc = test::mk_doc(
|
||||
"#[doc(brief = \"brief\", desc = \"desc\")]\
|
||||
type t = int;");
|
||||
assert doc.topmod.types()[0].brief == some("brief");
|
||||
assert doc.topmod.types()[0].desc == some("desc");
|
||||
assert doc.topmod.types()[0].brief() == some("brief");
|
||||
assert doc.topmod.types()[0].desc() == some("desc");
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
|
@ -37,8 +37,11 @@ fn fold_mod(fold: fold::fold<op>, doc: doc::moddoc) -> doc::moddoc {
|
||||
let doc = fold::default_seq_fold_mod(fold, doc);
|
||||
|
||||
{
|
||||
brief: maybe_apply_op(fold.ctxt, doc.brief),
|
||||
desc: maybe_apply_op(fold.ctxt, doc.desc)
|
||||
item: {
|
||||
brief: maybe_apply_op(fold.ctxt, doc.brief()),
|
||||
desc: maybe_apply_op(fold.ctxt, doc.desc())
|
||||
with doc.item
|
||||
}
|
||||
with doc
|
||||
}
|
||||
}
|
||||
@ -47,8 +50,11 @@ fn fold_const(fold: fold::fold<op>, doc: doc::constdoc) -> doc::constdoc {
|
||||
let doc = fold::default_seq_fold_const(fold, doc);
|
||||
|
||||
{
|
||||
brief: maybe_apply_op(fold.ctxt, doc.brief),
|
||||
desc: maybe_apply_op(fold.ctxt, doc.desc)
|
||||
item: {
|
||||
brief: maybe_apply_op(fold.ctxt, doc.brief()),
|
||||
desc: maybe_apply_op(fold.ctxt, doc.desc())
|
||||
with doc.item
|
||||
}
|
||||
with doc
|
||||
}
|
||||
}
|
||||
@ -57,8 +63,11 @@ fn fold_fn(fold: fold::fold<op>, doc: doc::fndoc) -> doc::fndoc {
|
||||
let doc = fold::default_seq_fold_fn(fold, doc);
|
||||
|
||||
{
|
||||
brief: maybe_apply_op(fold.ctxt, doc.brief),
|
||||
desc: maybe_apply_op(fold.ctxt, doc.desc),
|
||||
item: {
|
||||
brief: maybe_apply_op(fold.ctxt, doc.brief()),
|
||||
desc: maybe_apply_op(fold.ctxt, doc.desc())
|
||||
with doc.item
|
||||
},
|
||||
args: vec::map(doc.args) {|doc|
|
||||
{
|
||||
desc: maybe_apply_op(fold.ctxt, doc.desc)
|
||||
@ -76,8 +85,11 @@ fn fold_fn(fold: fold::fold<op>, doc: doc::fndoc) -> doc::fndoc {
|
||||
|
||||
fn fold_enum(fold: fold::fold<op>, doc: doc::enumdoc) -> doc::enumdoc {
|
||||
{
|
||||
brief: maybe_apply_op(fold.ctxt, doc.brief),
|
||||
desc: maybe_apply_op(fold.ctxt, doc.desc),
|
||||
item: {
|
||||
brief: maybe_apply_op(fold.ctxt, doc.brief()),
|
||||
desc: maybe_apply_op(fold.ctxt, doc.desc())
|
||||
with doc.item
|
||||
},
|
||||
variants: vec::map(doc.variants) {|variant|
|
||||
{
|
||||
desc: maybe_apply_op(fold.ctxt, variant.desc)
|
||||
@ -90,8 +102,11 @@ fn fold_enum(fold: fold::fold<op>, doc: doc::enumdoc) -> doc::enumdoc {
|
||||
|
||||
fn fold_res(fold: fold::fold<op>, doc: doc::resdoc) -> doc::resdoc {
|
||||
{
|
||||
brief: maybe_apply_op(fold.ctxt, doc.brief),
|
||||
desc: maybe_apply_op(fold.ctxt, doc.desc),
|
||||
item: {
|
||||
brief: maybe_apply_op(fold.ctxt, doc.brief()),
|
||||
desc: maybe_apply_op(fold.ctxt, doc.desc())
|
||||
with doc.item
|
||||
},
|
||||
args: vec::map(doc.args) {|arg|
|
||||
{
|
||||
desc: maybe_apply_op(fold.ctxt, arg.desc)
|
||||
@ -104,8 +119,11 @@ fn fold_res(fold: fold::fold<op>, doc: doc::resdoc) -> doc::resdoc {
|
||||
|
||||
fn fold_iface(fold: fold::fold<op>, doc: doc::ifacedoc) -> doc::ifacedoc {
|
||||
{
|
||||
brief: maybe_apply_op(fold.ctxt, doc.brief),
|
||||
desc: maybe_apply_op(fold.ctxt, doc.desc),
|
||||
item: {
|
||||
brief: maybe_apply_op(fold.ctxt, doc.brief()),
|
||||
desc: maybe_apply_op(fold.ctxt, doc.desc())
|
||||
with doc.item
|
||||
},
|
||||
methods: apply_to_methods(fold.ctxt, doc.methods)
|
||||
with doc
|
||||
}
|
||||
@ -134,8 +152,11 @@ fn apply_to_methods(op: op, docs: [doc::methoddoc]) -> [doc::methoddoc] {
|
||||
|
||||
fn fold_impl(fold: fold::fold<op>, doc: doc::impldoc) -> doc::impldoc {
|
||||
{
|
||||
brief: maybe_apply_op(fold.ctxt, doc.brief),
|
||||
desc: maybe_apply_op(fold.ctxt, doc.desc),
|
||||
item: {
|
||||
brief: maybe_apply_op(fold.ctxt, doc.brief()),
|
||||
desc: maybe_apply_op(fold.ctxt, doc.desc())
|
||||
with doc.item
|
||||
},
|
||||
methods: apply_to_methods(fold.ctxt, doc.methods)
|
||||
with doc
|
||||
}
|
||||
@ -143,8 +164,11 @@ fn fold_impl(fold: fold::fold<op>, doc: doc::impldoc) -> doc::impldoc {
|
||||
|
||||
fn fold_type(fold: fold::fold<op>, doc: doc::tydoc) -> doc::tydoc {
|
||||
{
|
||||
brief: maybe_apply_op(fold.ctxt, doc.brief),
|
||||
desc: maybe_apply_op(fold.ctxt, doc.desc)
|
||||
item: {
|
||||
brief: maybe_apply_op(fold.ctxt, doc.brief()),
|
||||
desc: maybe_apply_op(fold.ctxt, doc.desc())
|
||||
with doc.item
|
||||
}
|
||||
with doc
|
||||
}
|
||||
}
|
||||
@ -152,13 +176,13 @@ fn fold_type(fold: fold::fold<op>, doc: doc::tydoc) -> doc::tydoc {
|
||||
#[test]
|
||||
fn should_execute_op_on_enum_brief() {
|
||||
let doc = test::mk_doc("#[doc(brief = \" a \")] enum a { b }");
|
||||
assert doc.topmod.enums()[0].brief == some("a");
|
||||
assert doc.topmod.enums()[0].brief() == some("a");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn should_execute_op_on_enum_desc() {
|
||||
let doc = test::mk_doc("#[doc(desc = \" a \")] enum a { b }");
|
||||
assert doc.topmod.enums()[0].desc == some("a");
|
||||
assert doc.topmod.enums()[0].desc() == some("a");
|
||||
}
|
||||
|
||||
#[test]
|
||||
@ -170,13 +194,13 @@ fn should_execute_op_on_variant_desc() {
|
||||
#[test]
|
||||
fn should_execute_op_on_resource_brief() {
|
||||
let doc = test::mk_doc("#[doc(brief = \" a \")] resource r(a: bool) { }");
|
||||
assert doc.topmod.resources()[0].brief == some("a");
|
||||
assert doc.topmod.resources()[0].brief() == some("a");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn should_execute_op_on_resource_desc() {
|
||||
let doc = test::mk_doc("#[doc(desc = \" a \")] resource r(a: bool) { }");
|
||||
assert doc.topmod.resources()[0].desc == some("a");
|
||||
assert doc.topmod.resources()[0].desc() == some("a");
|
||||
}
|
||||
|
||||
#[test]
|
||||
@ -190,14 +214,14 @@ fn should_execute_op_on_resource_args() {
|
||||
fn should_execute_op_on_iface_brief() {
|
||||
let doc = test::mk_doc(
|
||||
"#[doc(brief = \" a \")] iface i { fn a(); }");
|
||||
assert doc.topmod.ifaces()[0].brief == some("a");
|
||||
assert doc.topmod.ifaces()[0].brief() == some("a");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn should_execute_op_on_iface_desc() {
|
||||
let doc = test::mk_doc(
|
||||
"#[doc(desc = \" a \")] iface i { fn a(); }");
|
||||
assert doc.topmod.ifaces()[0].desc == some("a");
|
||||
assert doc.topmod.ifaces()[0].desc() == some("a");
|
||||
}
|
||||
|
||||
#[test]
|
||||
@ -238,14 +262,14 @@ fn should_execute_op_on_iface_method_failure_condition() {
|
||||
fn should_execute_op_on_impl_brief() {
|
||||
let doc = test::mk_doc(
|
||||
"#[doc(brief = \" a \")] impl i for int { fn a() { } }");
|
||||
assert doc.topmod.impls()[0].brief == some("a");
|
||||
assert doc.topmod.impls()[0].brief() == some("a");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn should_execute_op_on_impl_desc() {
|
||||
let doc = test::mk_doc(
|
||||
"#[doc(desc = \" a \")] impl i for int { fn a() { } }");
|
||||
assert doc.topmod.impls()[0].desc == some("a");
|
||||
assert doc.topmod.impls()[0].desc() == some("a");
|
||||
}
|
||||
|
||||
#[test]
|
||||
@ -288,14 +312,14 @@ fn should_execute_op_on_impl_method_failure_condition() {
|
||||
fn should_execute_op_on_type_brief() {
|
||||
let doc = test::mk_doc(
|
||||
"#[doc(brief = \" a \")] type t = int;");
|
||||
assert doc.topmod.types()[0].brief == some("a");
|
||||
assert doc.topmod.types()[0].brief() == some("a");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn should_execute_op_on_type_desc() {
|
||||
let doc = test::mk_doc(
|
||||
"#[doc(desc = \" a \")] type t = int;");
|
||||
assert doc.topmod.types()[0].desc == some("a");
|
||||
assert doc.topmod.types()[0].desc() == some("a");
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
|
@ -33,66 +33,84 @@ fn run(
|
||||
|
||||
fn fold_mod(fold: fold::fold<()>, doc: doc::moddoc) -> doc::moddoc {
|
||||
let doc = fold::default_seq_fold_mod(fold, doc);
|
||||
let (brief, desc) = modify(doc.brief, doc.desc);
|
||||
let (brief, desc) = modify(doc.brief(), doc.desc());
|
||||
|
||||
{
|
||||
brief: brief,
|
||||
desc: desc
|
||||
item: {
|
||||
brief: brief,
|
||||
desc: desc
|
||||
with doc.item
|
||||
}
|
||||
with doc
|
||||
}
|
||||
}
|
||||
|
||||
fn fold_const(fold: fold::fold<()>, doc: doc::constdoc) -> doc::constdoc {
|
||||
let doc = fold::default_seq_fold_const(fold, doc);
|
||||
let (brief, desc) = modify(doc.brief, doc.desc);
|
||||
let (brief, desc) = modify(doc.brief(), doc.desc());
|
||||
|
||||
{
|
||||
brief: brief,
|
||||
desc: desc
|
||||
item: {
|
||||
brief: brief,
|
||||
desc: desc
|
||||
with doc.item
|
||||
}
|
||||
with doc
|
||||
}
|
||||
}
|
||||
|
||||
fn fold_fn(fold: fold::fold<()>, doc: doc::fndoc) -> doc::fndoc {
|
||||
let doc = fold::default_seq_fold_fn(fold, doc);
|
||||
let (brief, desc) = modify(doc.brief, doc.desc);
|
||||
let (brief, desc) = modify(doc.brief(), doc.desc());
|
||||
|
||||
{
|
||||
brief: brief,
|
||||
desc: desc
|
||||
item: {
|
||||
brief: brief,
|
||||
desc: desc
|
||||
with doc.item
|
||||
}
|
||||
with doc
|
||||
}
|
||||
}
|
||||
|
||||
fn fold_enum(fold: fold::fold<()>, doc: doc::enumdoc) -> doc::enumdoc {
|
||||
let doc = fold::default_seq_fold_enum(fold, doc);
|
||||
let (brief, desc) = modify(doc.brief, doc.desc);
|
||||
let (brief, desc) = modify(doc.brief(), doc.desc());
|
||||
|
||||
{
|
||||
brief: brief,
|
||||
desc: desc
|
||||
item: {
|
||||
brief: brief,
|
||||
desc: desc
|
||||
with doc.item
|
||||
}
|
||||
with doc
|
||||
}
|
||||
}
|
||||
|
||||
fn fold_res(fold: fold::fold<()>, doc: doc::resdoc) -> doc::resdoc {
|
||||
let doc = fold::default_seq_fold_res(fold, doc);
|
||||
let (brief, desc) = modify(doc.brief, doc.desc);
|
||||
let (brief, desc) = modify(doc.brief(), doc.desc());
|
||||
|
||||
{
|
||||
brief: brief,
|
||||
desc: desc
|
||||
item: {
|
||||
brief: brief,
|
||||
desc: desc
|
||||
with doc.item
|
||||
}
|
||||
with doc
|
||||
}
|
||||
}
|
||||
|
||||
fn fold_iface(fold: fold::fold<()>, doc: doc::ifacedoc) -> doc::ifacedoc {
|
||||
let doc =fold::default_seq_fold_iface(fold, doc);
|
||||
let (brief, desc) = modify(doc.brief, doc.desc);
|
||||
let (brief, desc) = modify(doc.brief(), doc.desc());
|
||||
|
||||
{
|
||||
brief: brief,
|
||||
desc: desc,
|
||||
item: {
|
||||
brief: brief,
|
||||
desc: desc
|
||||
with doc.item
|
||||
},
|
||||
methods: vec::map(doc.methods) {|doc|
|
||||
let (brief, desc) = modify(doc.brief, doc.desc);
|
||||
|
||||
@ -108,11 +126,14 @@ fn fold_iface(fold: fold::fold<()>, doc: doc::ifacedoc) -> doc::ifacedoc {
|
||||
|
||||
fn fold_impl(fold: fold::fold<()>, doc: doc::impldoc) -> doc::impldoc {
|
||||
let doc =fold::default_seq_fold_impl(fold, doc);
|
||||
let (brief, desc) = modify(doc.brief, doc.desc);
|
||||
let (brief, desc) = modify(doc.brief(), doc.desc());
|
||||
|
||||
{
|
||||
brief: brief,
|
||||
desc: desc,
|
||||
item: {
|
||||
brief: brief,
|
||||
desc: desc
|
||||
with doc.item
|
||||
},
|
||||
methods: vec::map(doc.methods) {|doc|
|
||||
let (brief, desc) = modify(doc.brief, doc.desc);
|
||||
|
||||
@ -128,11 +149,14 @@ fn fold_impl(fold: fold::fold<()>, doc: doc::impldoc) -> doc::impldoc {
|
||||
|
||||
fn fold_type(fold: fold::fold<()>, doc: doc::tydoc) -> doc::tydoc {
|
||||
let doc = fold::default_seq_fold_type(fold, doc);
|
||||
let (brief, desc) = modify(doc.brief, doc.desc);
|
||||
let (brief, desc) = modify(doc.brief(), doc.desc());
|
||||
|
||||
{
|
||||
brief: brief,
|
||||
desc: desc
|
||||
item: {
|
||||
brief: brief,
|
||||
desc: desc
|
||||
with doc.item
|
||||
}
|
||||
with doc
|
||||
}
|
||||
}
|
||||
@ -140,44 +164,44 @@ fn fold_type(fold: fold::fold<()>, doc: doc::tydoc) -> doc::tydoc {
|
||||
#[test]
|
||||
fn should_promote_mod_desc() {
|
||||
let doc = test::mk_doc("#[doc(desc = \"desc\")] mod m { }");
|
||||
assert doc.topmod.mods()[0].brief == some("desc");
|
||||
assert doc.topmod.mods()[0].desc == none;
|
||||
assert doc.topmod.mods()[0].brief() == some("desc");
|
||||
assert doc.topmod.mods()[0].desc() == none;
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn should_promote_const_desc() {
|
||||
let doc = test::mk_doc("#[doc(desc = \"desc\")] const a: bool = true;");
|
||||
assert doc.topmod.consts()[0].brief == some("desc");
|
||||
assert doc.topmod.consts()[0].desc == none;
|
||||
assert doc.topmod.consts()[0].brief() == some("desc");
|
||||
assert doc.topmod.consts()[0].desc() == none;
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn should_promote_fn_desc() {
|
||||
let doc = test::mk_doc("#[doc(desc = \"desc\")] fn a() { }");
|
||||
assert doc.topmod.fns()[0].brief == some("desc");
|
||||
assert doc.topmod.fns()[0].desc == none;
|
||||
assert doc.topmod.fns()[0].brief() == some("desc");
|
||||
assert doc.topmod.fns()[0].desc() == none;
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn should_promote_enum_desc() {
|
||||
let doc = test::mk_doc("#[doc(desc = \"desc\")] enum a { b }");
|
||||
assert doc.topmod.enums()[0].brief == some("desc");
|
||||
assert doc.topmod.enums()[0].desc == none;
|
||||
assert doc.topmod.enums()[0].brief() == some("desc");
|
||||
assert doc.topmod.enums()[0].desc() == none;
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn should_promote_resource_desc() {
|
||||
let doc = test::mk_doc(
|
||||
"#[doc(desc = \"desc\")] resource r(a: bool) { }");
|
||||
assert doc.topmod.resources()[0].brief == some("desc");
|
||||
assert doc.topmod.resources()[0].desc == none;
|
||||
assert doc.topmod.resources()[0].brief() == some("desc");
|
||||
assert doc.topmod.resources()[0].desc() == none;
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn should_promote_iface_desc() {
|
||||
let doc = test::mk_doc("#[doc(desc = \"desc\")] iface i { fn a(); }");
|
||||
assert doc.topmod.ifaces()[0].brief == some("desc");
|
||||
assert doc.topmod.ifaces()[0].desc == none;
|
||||
assert doc.topmod.ifaces()[0].brief() == some("desc");
|
||||
assert doc.topmod.ifaces()[0].desc() == none;
|
||||
}
|
||||
|
||||
#[test]
|
||||
@ -191,8 +215,8 @@ fn should_promote_iface_method_desc() {
|
||||
fn should_promote_impl_desc() {
|
||||
let doc = test::mk_doc(
|
||||
"#[doc(desc = \"desc\")] impl i for int { fn a() { } }");
|
||||
assert doc.topmod.impls()[0].brief == some("desc");
|
||||
assert doc.topmod.impls()[0].desc == none;
|
||||
assert doc.topmod.impls()[0].brief() == some("desc");
|
||||
assert doc.topmod.impls()[0].desc() == none;
|
||||
}
|
||||
|
||||
#[test]
|
||||
@ -206,8 +230,8 @@ fn should_promote_impl_method_desc() {
|
||||
#[test]
|
||||
fn should_promote_type_desc() {
|
||||
let doc = test::mk_doc("#[doc(desc = \"desc\")] type t = int;");
|
||||
assert doc.topmod.types()[0].brief == some("desc");
|
||||
assert doc.topmod.types()[0].desc == none;
|
||||
assert doc.topmod.types()[0].brief() == some("desc");
|
||||
assert doc.topmod.types()[0].desc() == none;
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
|
@ -17,31 +17,27 @@ enum itemtag {
|
||||
tytag(tydoc)
|
||||
}
|
||||
|
||||
type moddoc = {
|
||||
type itemdoc = {
|
||||
id: ast_id,
|
||||
name: str,
|
||||
path: [str],
|
||||
brief: option<str>,
|
||||
desc: option<str>,
|
||||
};
|
||||
|
||||
type moddoc = {
|
||||
item: itemdoc,
|
||||
// This box exists to break the structural recursion
|
||||
items: ~[itemtag]
|
||||
};
|
||||
|
||||
type constdoc = {
|
||||
id: ast_id,
|
||||
name: str,
|
||||
path: [str],
|
||||
brief: option<str>,
|
||||
desc: option<str>,
|
||||
item: itemdoc,
|
||||
ty: option<str>
|
||||
};
|
||||
|
||||
type fndoc = {
|
||||
id: ast_id,
|
||||
name: str,
|
||||
path: [str],
|
||||
brief: option<str>,
|
||||
desc: option<str>,
|
||||
item: itemdoc,
|
||||
args: [argdoc],
|
||||
return: retdoc,
|
||||
failure: option<str>,
|
||||
@ -60,11 +56,7 @@ type retdoc = {
|
||||
};
|
||||
|
||||
type enumdoc = {
|
||||
id: ast_id,
|
||||
name: str,
|
||||
path: [str],
|
||||
brief: option<str>,
|
||||
desc: option<str>,
|
||||
item: itemdoc,
|
||||
variants: [variantdoc]
|
||||
};
|
||||
|
||||
@ -75,21 +67,13 @@ type variantdoc = {
|
||||
};
|
||||
|
||||
type resdoc = {
|
||||
id: ast_id,
|
||||
name: str,
|
||||
path: [str],
|
||||
brief: option<str>,
|
||||
desc: option<str>,
|
||||
item: itemdoc,
|
||||
args: [argdoc],
|
||||
sig: option<str>
|
||||
};
|
||||
|
||||
type ifacedoc = {
|
||||
id: ast_id,
|
||||
name: str,
|
||||
path: [str],
|
||||
brief: option<str>,
|
||||
desc: option<str>,
|
||||
item: itemdoc,
|
||||
methods: [methoddoc]
|
||||
};
|
||||
|
||||
@ -104,22 +88,14 @@ type methoddoc = {
|
||||
};
|
||||
|
||||
type impldoc = {
|
||||
id: ast_id,
|
||||
name: str,
|
||||
path: [str],
|
||||
brief: option<str>,
|
||||
desc: option<str>,
|
||||
item: itemdoc,
|
||||
iface_ty: option<str>,
|
||||
self_ty: option<str>,
|
||||
methods: [methoddoc]
|
||||
};
|
||||
|
||||
type tydoc = {
|
||||
id: ast_id,
|
||||
name: str,
|
||||
path: [str],
|
||||
brief: option<str>,
|
||||
desc: option<str>,
|
||||
item: itemdoc,
|
||||
sig: option<str>
|
||||
};
|
||||
|
||||
@ -199,18 +175,75 @@ impl util for moddoc {
|
||||
}
|
||||
}
|
||||
|
||||
#[doc = "Helper methods on itemtag"]
|
||||
impl util for itemtag {
|
||||
fn name() -> str {
|
||||
iface item {
|
||||
fn item() -> itemdoc;
|
||||
}
|
||||
|
||||
impl of item for itemtag {
|
||||
fn item() -> itemdoc {
|
||||
alt self {
|
||||
doc::modtag({name, _}) { name }
|
||||
doc::fntag({name, _}) { name }
|
||||
doc::consttag({name, _}) { name }
|
||||
doc::enumtag({name, _}) { name }
|
||||
doc::restag({name, _}) { name }
|
||||
doc::ifacetag({name, _}) { name }
|
||||
doc::impltag({name, _}) { name }
|
||||
doc::tytag({name, _}) { name }
|
||||
doc::modtag(doc) { doc.item }
|
||||
doc::fntag(doc) { doc.item }
|
||||
doc::consttag(doc) { doc.item }
|
||||
doc::enumtag(doc) { doc.item }
|
||||
doc::restag(doc) { doc.item }
|
||||
doc::ifacetag(doc) { doc.item }
|
||||
doc::impltag(doc) { doc.item }
|
||||
doc::tytag(doc) { doc.item }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl of item for moddoc {
|
||||
fn item() -> itemdoc { self.item }
|
||||
}
|
||||
|
||||
impl of item for fndoc {
|
||||
fn item() -> itemdoc { self.item }
|
||||
}
|
||||
|
||||
impl of item for constdoc {
|
||||
fn item() -> itemdoc { self.item }
|
||||
}
|
||||
|
||||
impl of item for enumdoc {
|
||||
fn item() -> itemdoc { self.item }
|
||||
}
|
||||
|
||||
impl of item for resdoc {
|
||||
fn item() -> itemdoc { self.item }
|
||||
}
|
||||
|
||||
impl of item for ifacedoc {
|
||||
fn item() -> itemdoc { self.item }
|
||||
}
|
||||
|
||||
impl of item for impldoc {
|
||||
fn item() -> itemdoc { self.item }
|
||||
}
|
||||
|
||||
impl of item for tydoc {
|
||||
fn item() -> itemdoc { self.item }
|
||||
}
|
||||
|
||||
impl util<A:item> for A {
|
||||
fn id() -> ast_id {
|
||||
self.item().id
|
||||
}
|
||||
|
||||
fn name() -> str {
|
||||
self.item().name
|
||||
}
|
||||
|
||||
fn path() -> [str] {
|
||||
self.item().path
|
||||
}
|
||||
|
||||
fn brief() -> option<str> {
|
||||
self.item().brief
|
||||
}
|
||||
|
||||
fn desc() -> option<str> {
|
||||
self.item().desc
|
||||
}
|
||||
}
|
@ -38,11 +38,13 @@ fn moddoc_from_mod(
|
||||
id: ast::node_id
|
||||
) -> doc::moddoc {
|
||||
{
|
||||
id: id,
|
||||
name: name,
|
||||
path: [],
|
||||
brief: none,
|
||||
desc: none,
|
||||
item: {
|
||||
id: id,
|
||||
name: name,
|
||||
path: [],
|
||||
brief: none,
|
||||
desc: none,
|
||||
},
|
||||
items: ~vec::filter_map(module.items) {|item|
|
||||
alt item.node {
|
||||
ast::item_mod(m) {
|
||||
@ -99,11 +101,13 @@ fn fndoc_from_fn(
|
||||
id: ast::node_id
|
||||
) -> doc::fndoc {
|
||||
{
|
||||
id: id,
|
||||
name: name,
|
||||
path: [],
|
||||
brief: none,
|
||||
desc: none,
|
||||
item: {
|
||||
id: id,
|
||||
name: name,
|
||||
path: [],
|
||||
brief: none,
|
||||
desc: none,
|
||||
},
|
||||
args: argdocs_from_args(decl.inputs),
|
||||
return: {
|
||||
desc: none,
|
||||
@ -141,11 +145,13 @@ fn constdoc_from_const(
|
||||
id: ast::node_id
|
||||
) -> doc::constdoc {
|
||||
{
|
||||
id: id,
|
||||
name: name,
|
||||
path: [],
|
||||
brief: none,
|
||||
desc: none,
|
||||
item: {
|
||||
id: id,
|
||||
name: name,
|
||||
path: [],
|
||||
brief: none,
|
||||
desc: none,
|
||||
},
|
||||
ty: none
|
||||
}
|
||||
}
|
||||
@ -153,8 +159,8 @@ fn constdoc_from_const(
|
||||
#[test]
|
||||
fn should_extract_const_name_and_id() {
|
||||
let doc = test::mk_doc("const a: int = 0;");
|
||||
assert doc.topmod.consts()[0].id != 0;
|
||||
assert doc.topmod.consts()[0].name == "a";
|
||||
assert doc.topmod.consts()[0].id() != 0;
|
||||
assert doc.topmod.consts()[0].name() == "a";
|
||||
}
|
||||
|
||||
fn enumdoc_from_enum(
|
||||
@ -163,11 +169,13 @@ fn enumdoc_from_enum(
|
||||
variants: [ast::variant]
|
||||
) -> doc::enumdoc {
|
||||
{
|
||||
id: id,
|
||||
name: name,
|
||||
path: [],
|
||||
brief: none,
|
||||
desc: none,
|
||||
item: {
|
||||
id: id,
|
||||
name: name,
|
||||
path: [],
|
||||
brief: none,
|
||||
desc: none,
|
||||
},
|
||||
variants: variantdocs_from_variants(variants)
|
||||
}
|
||||
}
|
||||
@ -189,8 +197,8 @@ fn variantdoc_from_variant(variant: ast::variant) -> doc::variantdoc {
|
||||
#[test]
|
||||
fn should_extract_enums() {
|
||||
let doc = test::mk_doc("enum e { v }");
|
||||
assert doc.topmod.enums()[0].id != 0;
|
||||
assert doc.topmod.enums()[0].name == "e";
|
||||
assert doc.topmod.enums()[0].id() != 0;
|
||||
assert doc.topmod.enums()[0].name() == "e";
|
||||
}
|
||||
|
||||
#[test]
|
||||
@ -205,11 +213,13 @@ fn resdoc_from_resource(
|
||||
id: ast::node_id
|
||||
) -> doc::resdoc {
|
||||
{
|
||||
id: id,
|
||||
name: name,
|
||||
path: [],
|
||||
brief: none,
|
||||
desc: none,
|
||||
item: {
|
||||
id: id,
|
||||
name: name,
|
||||
path: [],
|
||||
brief: none,
|
||||
desc: none,
|
||||
},
|
||||
args: argdocs_from_args(decl.inputs),
|
||||
sig: none
|
||||
}
|
||||
@ -218,8 +228,8 @@ fn resdoc_from_resource(
|
||||
#[test]
|
||||
fn should_extract_resources() {
|
||||
let doc = test::mk_doc("resource r(b: bool) { }");
|
||||
assert doc.topmod.resources()[0].id != 0;
|
||||
assert doc.topmod.resources()[0].name == "r";
|
||||
assert doc.topmod.resources()[0].id() != 0;
|
||||
assert doc.topmod.resources()[0].name() == "r";
|
||||
}
|
||||
|
||||
#[test]
|
||||
@ -234,11 +244,13 @@ fn ifacedoc_from_iface(
|
||||
id: ast::node_id
|
||||
) -> doc::ifacedoc {
|
||||
{
|
||||
id: id,
|
||||
name: name,
|
||||
path: [],
|
||||
brief: none,
|
||||
desc: none,
|
||||
item: {
|
||||
id: id,
|
||||
name: name,
|
||||
path: [],
|
||||
brief: none,
|
||||
desc: none,
|
||||
},
|
||||
methods: vec::map(methods) {|method|
|
||||
{
|
||||
name: method.ident,
|
||||
@ -259,7 +271,7 @@ fn ifacedoc_from_iface(
|
||||
#[test]
|
||||
fn should_extract_ifaces() {
|
||||
let doc = test::mk_doc("iface i { fn f(); }");
|
||||
assert doc.topmod.ifaces()[0].name == "i";
|
||||
assert doc.topmod.ifaces()[0].name() == "i";
|
||||
}
|
||||
|
||||
#[test]
|
||||
@ -280,11 +292,13 @@ fn impldoc_from_impl(
|
||||
id: ast::node_id
|
||||
) -> doc::impldoc {
|
||||
{
|
||||
id: id,
|
||||
name: name,
|
||||
path: [],
|
||||
brief: none,
|
||||
desc: none,
|
||||
item: {
|
||||
id: id,
|
||||
name: name,
|
||||
path: [],
|
||||
brief: none,
|
||||
desc: none,
|
||||
},
|
||||
iface_ty: none,
|
||||
self_ty: none,
|
||||
methods: vec::map(methods) {|method|
|
||||
@ -307,13 +321,13 @@ fn impldoc_from_impl(
|
||||
#[test]
|
||||
fn should_extract_impls_with_names() {
|
||||
let doc = test::mk_doc("impl i for int { fn a() { } }");
|
||||
assert doc.topmod.impls()[0].name == "i";
|
||||
assert doc.topmod.impls()[0].name() == "i";
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn should_extract_impls_without_names() {
|
||||
let doc = test::mk_doc("impl of i for int { fn a() { } }");
|
||||
assert doc.topmod.impls()[0].name == "i";
|
||||
assert doc.topmod.impls()[0].name() == "i";
|
||||
}
|
||||
|
||||
#[test]
|
||||
@ -333,11 +347,13 @@ fn tydoc_from_ty(
|
||||
id: ast::node_id
|
||||
) -> doc::tydoc {
|
||||
{
|
||||
id: id,
|
||||
name: name,
|
||||
path: [],
|
||||
brief: none,
|
||||
desc: none,
|
||||
item: {
|
||||
id: id,
|
||||
name: name,
|
||||
path: [],
|
||||
brief: none,
|
||||
desc: none,
|
||||
},
|
||||
sig: none
|
||||
}
|
||||
}
|
||||
@ -345,7 +361,7 @@ fn tydoc_from_ty(
|
||||
#[test]
|
||||
fn should_extract_tys() {
|
||||
let doc = test::mk_doc("type a = int;");
|
||||
assert doc.topmod.types()[0].name == "a";
|
||||
assert doc.topmod.types()[0].name() == "a";
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
@ -366,21 +382,21 @@ mod test {
|
||||
#[test]
|
||||
fn extract_mods() {
|
||||
let doc = mk_doc("mod a { mod b { } mod c { } }");
|
||||
assert doc.topmod.mods()[0].name == "a";
|
||||
assert doc.topmod.mods()[0].mods()[0].name == "b";
|
||||
assert doc.topmod.mods()[0].mods()[1].name == "c";
|
||||
assert doc.topmod.mods()[0].name() == "a";
|
||||
assert doc.topmod.mods()[0].mods()[0].name() == "b";
|
||||
assert doc.topmod.mods()[0].mods()[1].name() == "c";
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn extract_mods_deep() {
|
||||
let doc = mk_doc("mod a { mod b { mod c { } } }");
|
||||
assert doc.topmod.mods()[0].mods()[0].mods()[0].name == "c";
|
||||
assert doc.topmod.mods()[0].mods()[0].mods()[0].name() == "c";
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn extract_should_set_mod_ast_id() {
|
||||
let doc = mk_doc("mod a { }");
|
||||
assert doc.topmod.mods()[0].id != 0;
|
||||
assert doc.topmod.mods()[0].id() != 0;
|
||||
}
|
||||
|
||||
#[test]
|
||||
@ -388,14 +404,14 @@ mod test {
|
||||
let doc = mk_doc(
|
||||
"fn a() { } \
|
||||
mod b { fn c() { } }");
|
||||
assert doc.topmod.fns()[0].name == "a";
|
||||
assert doc.topmod.mods()[0].fns()[0].name == "c";
|
||||
assert doc.topmod.fns()[0].name() == "a";
|
||||
assert doc.topmod.mods()[0].fns()[0].name() == "c";
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn extract_should_set_fn_ast_id() {
|
||||
let doc = mk_doc("fn a() { }");
|
||||
assert doc.topmod.fns()[0].id != 0;
|
||||
assert doc.topmod.fns()[0].id() != 0;
|
||||
}
|
||||
|
||||
#[test]
|
||||
@ -403,7 +419,7 @@ mod test {
|
||||
let source = "";
|
||||
let ast = parse::from_str(source);
|
||||
let doc = extract(ast, "burp");
|
||||
assert doc.topmod.name == "burp";
|
||||
assert doc.topmod.name() == "burp";
|
||||
}
|
||||
|
||||
#[test]
|
||||
@ -411,6 +427,6 @@ mod test {
|
||||
let source = "";
|
||||
let srv = astsrv::mk_srv_from_str(source);
|
||||
let doc = from_srv(srv, "name");
|
||||
assert doc.topmod.name == "name";
|
||||
assert doc.topmod.name() == "name";
|
||||
}
|
||||
}
|
@ -97,7 +97,7 @@ fn write_crate(
|
||||
ctxt: ctxt,
|
||||
doc: doc::cratedoc
|
||||
) {
|
||||
write_header(ctxt, h1, #fmt("Crate %s", doc.topmod.name));
|
||||
write_header(ctxt, h1, #fmt("Crate %s", doc.topmod.name()));
|
||||
write_top_module(ctxt, doc.topmod);
|
||||
}
|
||||
|
||||
@ -112,7 +112,7 @@ fn write_mod(
|
||||
ctxt: ctxt,
|
||||
moddoc: doc::moddoc
|
||||
) {
|
||||
let fullpath = str::connect(moddoc.path + [moddoc.name], "::");
|
||||
let fullpath = str::connect(moddoc.path() + [moddoc.name()], "::");
|
||||
write_header(ctxt, h1, #fmt("Module `%s`", fullpath));
|
||||
write_mod_contents(ctxt, moddoc);
|
||||
}
|
||||
@ -127,8 +127,8 @@ fn write_mod_contents(
|
||||
ctxt: ctxt,
|
||||
doc: doc::moddoc
|
||||
) {
|
||||
write_brief(ctxt, doc.brief);
|
||||
write_desc(ctxt, doc.desc);
|
||||
write_brief(ctxt, doc.brief());
|
||||
write_desc(ctxt, doc.desc());
|
||||
|
||||
for itemtag in *doc.items {
|
||||
alt itemtag {
|
||||
@ -160,12 +160,12 @@ fn write_fn(
|
||||
ctxt: ctxt,
|
||||
doc: doc::fndoc
|
||||
) {
|
||||
write_header(ctxt, h2, #fmt("Function `%s`", doc.name));
|
||||
write_header(ctxt, h2, #fmt("Function `%s`", doc.name()));
|
||||
write_fnlike(
|
||||
ctxt,
|
||||
doc.sig,
|
||||
doc.brief,
|
||||
doc.desc,
|
||||
doc.brief(),
|
||||
doc.desc(),
|
||||
doc.args,
|
||||
doc.return,
|
||||
doc.failure
|
||||
@ -424,10 +424,10 @@ fn write_const(
|
||||
ctxt: ctxt,
|
||||
doc: doc::constdoc
|
||||
) {
|
||||
write_header(ctxt, h2, #fmt("Const `%s`", doc.name));
|
||||
write_header(ctxt, h2, #fmt("Const `%s`", doc.name()));
|
||||
write_sig(ctxt, doc.ty);
|
||||
write_brief(ctxt, doc.brief);
|
||||
write_desc(ctxt, doc.desc);
|
||||
write_brief(ctxt, doc.brief());
|
||||
write_desc(ctxt, doc.desc());
|
||||
}
|
||||
|
||||
#[test]
|
||||
@ -448,9 +448,9 @@ fn write_enum(
|
||||
ctxt: ctxt,
|
||||
doc: doc::enumdoc
|
||||
) {
|
||||
write_header(ctxt, h2, #fmt("Enum `%s`", doc.name));
|
||||
write_brief(ctxt, doc.brief);
|
||||
write_desc(ctxt, doc.desc);
|
||||
write_header(ctxt, h2, #fmt("Enum `%s`", doc.name()));
|
||||
write_brief(ctxt, doc.brief());
|
||||
write_desc(ctxt, doc.desc());
|
||||
write_variants(ctxt, doc.variants);
|
||||
}
|
||||
|
||||
@ -530,10 +530,10 @@ fn should_write_variant_list_with_signatures() {
|
||||
}
|
||||
|
||||
fn write_res(ctxt: ctxt, doc: doc::resdoc) {
|
||||
write_header(ctxt, h2, #fmt("Resource `%s`", doc.name));
|
||||
write_header(ctxt, h2, #fmt("Resource `%s`", doc.name()));
|
||||
write_sig(ctxt, doc.sig);
|
||||
write_brief(ctxt, doc.brief);
|
||||
write_desc(ctxt, doc.desc);
|
||||
write_brief(ctxt, doc.brief());
|
||||
write_desc(ctxt, doc.desc());
|
||||
write_args(ctxt, doc.args);
|
||||
}
|
||||
|
||||
@ -557,9 +557,9 @@ fn should_write_resource_args() {
|
||||
}
|
||||
|
||||
fn write_iface(ctxt: ctxt, doc: doc::ifacedoc) {
|
||||
write_header(ctxt, h2, #fmt("Interface `%s`", doc.name));
|
||||
write_brief(ctxt, doc.brief);
|
||||
write_desc(ctxt, doc.desc);
|
||||
write_header(ctxt, h2, #fmt("Interface `%s`", doc.name()));
|
||||
write_brief(ctxt, doc.brief());
|
||||
write_desc(ctxt, doc.desc());
|
||||
write_methods(ctxt, doc.methods);
|
||||
}
|
||||
|
||||
@ -656,16 +656,16 @@ fn write_impl(ctxt: ctxt, doc: doc::impldoc) {
|
||||
some(iface_ty) {
|
||||
write_header(ctxt, h2,
|
||||
#fmt("Implementation `%s` of `%s` for `%s`",
|
||||
doc.name, iface_ty, self_ty));
|
||||
doc.name(), iface_ty, self_ty));
|
||||
}
|
||||
none {
|
||||
write_header(ctxt, h2,
|
||||
#fmt("Implementation `%s` for `%s`",
|
||||
doc.name, self_ty));
|
||||
doc.name(), self_ty));
|
||||
}
|
||||
}
|
||||
write_brief(ctxt, doc.brief);
|
||||
write_desc(ctxt, doc.desc);
|
||||
write_brief(ctxt, doc.brief());
|
||||
write_desc(ctxt, doc.desc());
|
||||
write_methods(ctxt, doc.methods);
|
||||
}
|
||||
|
||||
@ -748,10 +748,10 @@ fn write_type(
|
||||
ctxt: ctxt,
|
||||
doc: doc::tydoc
|
||||
) {
|
||||
write_header(ctxt, h2, #fmt("Type `%s`", doc.name));
|
||||
write_header(ctxt, h2, #fmt("Type `%s`", doc.name()));
|
||||
write_sig(ctxt, doc.sig);
|
||||
write_brief(ctxt, doc.brief);
|
||||
write_desc(ctxt, doc.desc);
|
||||
write_brief(ctxt, doc.brief());
|
||||
write_desc(ctxt, doc.desc());
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
@ -27,13 +27,16 @@ fn run(srv: astsrv::srv, doc: doc::cratedoc) -> doc::cratedoc {
|
||||
}
|
||||
|
||||
fn fold_mod(fold: fold::fold<ctxt>, doc: doc::moddoc) -> doc::moddoc {
|
||||
let is_topmod = doc.id == rustc::syntax::ast::crate_node_id;
|
||||
let is_topmod = doc.id() == rustc::syntax::ast::crate_node_id;
|
||||
|
||||
if !is_topmod { vec::push(fold.ctxt.path, doc.name); }
|
||||
if !is_topmod { vec::push(fold.ctxt.path, doc.name()); }
|
||||
let doc = fold::default_seq_fold_mod(fold, doc);
|
||||
if !is_topmod { vec::pop(fold.ctxt.path); }
|
||||
{
|
||||
path: fold.ctxt.path
|
||||
item: {
|
||||
path: fold.ctxt.path
|
||||
with doc.item
|
||||
}
|
||||
with doc
|
||||
}
|
||||
}
|
||||
@ -44,6 +47,6 @@ fn should_record_mod_paths() {
|
||||
let srv = astsrv::mk_srv_from_str(source);
|
||||
let doc = extract::from_srv(srv, "");
|
||||
let doc = run(srv, doc);
|
||||
assert doc.topmod.mods()[0].mods()[0].mods()[0].path == ["a", "b"];
|
||||
assert doc.topmod.mods()[0].mods()[1].mods()[0].path == ["a", "d"];
|
||||
assert doc.topmod.mods()[0].mods()[0].mods()[0].path() == ["a", "b"];
|
||||
assert doc.topmod.mods()[0].mods()[1].mods()[0].path() == ["a", "d"];
|
||||
}
|
@ -108,8 +108,8 @@ fn fold_mod(
|
||||
with fold::default_seq_fold_mod(fold, doc)
|
||||
};
|
||||
fold.ctxt.have_docs =
|
||||
doc.brief != none
|
||||
|| doc.desc != none
|
||||
doc.brief() != none
|
||||
|| doc.desc() != none
|
||||
|| vec::is_not_empty(*doc.items);
|
||||
ret doc;
|
||||
}
|
||||
@ -121,8 +121,8 @@ fn fold_fn(
|
||||
let doc = fold::default_seq_fold_fn(fold, doc);
|
||||
|
||||
fold.ctxt.have_docs =
|
||||
doc.brief != none
|
||||
|| doc.desc != none
|
||||
doc.brief() != none
|
||||
|| doc.desc() != none
|
||||
|| args_have_docs(doc.args)
|
||||
|| doc.return.desc != none
|
||||
|| doc.failure != none;
|
||||
@ -183,8 +183,8 @@ fn fold_const(
|
||||
) -> doc::constdoc {
|
||||
let doc = fold::default_seq_fold_const(fold, doc);
|
||||
fold.ctxt.have_docs =
|
||||
doc.brief != none
|
||||
|| doc.desc != none;
|
||||
doc.brief() != none
|
||||
|| doc.desc() != none;
|
||||
ret doc;
|
||||
}
|
||||
|
||||
@ -206,8 +206,8 @@ fn fold_enum(fold: fold::fold<ctxt>, doc: doc::enumdoc) -> doc::enumdoc {
|
||||
with fold::default_seq_fold_enum(fold, doc)
|
||||
};
|
||||
fold.ctxt.have_docs =
|
||||
doc.brief != none
|
||||
|| doc.desc != none
|
||||
doc.brief() != none
|
||||
|| doc.desc() != none
|
||||
|| vec::is_not_empty(doc.variants);
|
||||
ret doc;
|
||||
}
|
||||
@ -234,8 +234,8 @@ fn fold_res(fold: fold::fold<ctxt>, doc: doc::resdoc) -> doc::resdoc {
|
||||
let doc = fold::default_seq_fold_res(fold, doc);
|
||||
|
||||
fold.ctxt.have_docs =
|
||||
doc.brief != none
|
||||
|| doc.desc != none
|
||||
doc.brief() != none
|
||||
|| doc.desc() != none
|
||||
|| args_have_docs(doc.args);
|
||||
ret doc;
|
||||
}
|
||||
@ -260,8 +260,8 @@ fn fold_iface(
|
||||
let doc = fold::default_seq_fold_iface(fold, doc);
|
||||
|
||||
fold.ctxt.have_docs =
|
||||
doc.brief != none
|
||||
|| doc.desc != none
|
||||
doc.brief() != none
|
||||
|| doc.desc() != none
|
||||
|| methods_have_docs(doc.methods);
|
||||
ret doc;
|
||||
}
|
||||
@ -314,8 +314,8 @@ fn fold_impl(
|
||||
let doc = fold::default_seq_fold_impl(fold, doc);
|
||||
|
||||
fold.ctxt.have_docs =
|
||||
doc.brief != none
|
||||
|| doc.desc != none
|
||||
doc.brief() != none
|
||||
|| doc.desc() != none
|
||||
|| methods_have_docs(doc.methods);
|
||||
ret doc;
|
||||
}
|
||||
@ -351,8 +351,8 @@ fn fold_type(
|
||||
let doc = fold::default_seq_fold_type(fold, doc);
|
||||
|
||||
fold.ctxt.have_docs =
|
||||
doc.brief != none
|
||||
|| doc.desc != none;
|
||||
doc.brief() != none
|
||||
|| doc.desc() != none;
|
||||
ret doc;
|
||||
}
|
||||
|
||||
|
@ -40,7 +40,7 @@ fn exported_things<T>(
|
||||
from_crate: fn(astsrv::srv, doc::moddoc) -> [T],
|
||||
from_mod: fn(astsrv::srv, doc::moddoc) -> [T]
|
||||
) -> [T] {
|
||||
if doc.id == ast::crate_node_id {
|
||||
if doc.id() == ast::crate_node_id {
|
||||
from_crate(srv, doc)
|
||||
} else {
|
||||
from_mod(srv, doc)
|
||||
@ -58,7 +58,7 @@ fn exported_items_from_mod(
|
||||
srv: astsrv::srv,
|
||||
doc: doc::moddoc
|
||||
) -> [doc::itemtag] {
|
||||
exported_items_from(srv, doc, bind is_exported_from_mod(_, doc.id, _))
|
||||
exported_items_from(srv, doc, bind is_exported_from_mod(_, doc.id(), _))
|
||||
}
|
||||
|
||||
fn exported_items_from(
|
||||
|
@ -2,6 +2,8 @@
|
||||
* Copyright 2011 Google Inc.
|
||||
*/
|
||||
|
||||
// Some utility interfaces
|
||||
import doc::item;
|
||||
import doc::util;
|
||||
|
||||
#[doc = "A single operation on the document model"]
|
||||
@ -46,11 +48,10 @@ fn test_run_passes() {
|
||||
) -> doc::cratedoc {
|
||||
{
|
||||
topmod: {
|
||||
id: 0,
|
||||
name: doc.topmod.name + "two",
|
||||
path: [],
|
||||
brief: none,
|
||||
desc: none,
|
||||
item: {
|
||||
name: doc.topmod.name() + "two"
|
||||
with doc.topmod.item
|
||||
},
|
||||
items: ~[]
|
||||
}
|
||||
}
|
||||
@ -61,11 +62,10 @@ fn test_run_passes() {
|
||||
) -> doc::cratedoc {
|
||||
{
|
||||
topmod: {
|
||||
id: 0,
|
||||
name: doc.topmod.name + "three",
|
||||
path: [],
|
||||
brief: none,
|
||||
desc: none,
|
||||
item: {
|
||||
name: doc.topmod.name() + "three"
|
||||
with doc.topmod.item
|
||||
},
|
||||
items: ~[]
|
||||
}
|
||||
}
|
||||
@ -75,7 +75,7 @@ fn test_run_passes() {
|
||||
let passes = [pass1, pass2];
|
||||
let doc = extract::from_srv(srv, "one");
|
||||
let doc = run_passes(srv, doc, passes);
|
||||
assert doc.topmod.name == "onetwothree";
|
||||
assert doc.topmod.name() == "onetwothree";
|
||||
}
|
||||
|
||||
fn main(argv: [str]) {
|
||||
|
@ -45,10 +45,10 @@ fn test() {
|
||||
let srv = astsrv::mk_srv_from_str(source);
|
||||
let doc = extract::from_srv(srv, "");
|
||||
let doc = mk_pass(name_lteq)(srv, doc);
|
||||
assert doc.topmod.mods()[0].name == "w";
|
||||
assert doc.topmod.mods()[0].name() == "w";
|
||||
assert doc.topmod.mods()[1].items[0].name() == "x";
|
||||
assert doc.topmod.mods()[1].items[1].name() == "y";
|
||||
assert doc.topmod.mods()[1].name == "z";
|
||||
assert doc.topmod.mods()[1].name() == "z";
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
@ -18,8 +18,8 @@ fn should_trim_mod() {
|
||||
let doc = test::mk_doc("#[doc(brief = \"\nbrief\n\", \
|
||||
desc = \"\ndesc\n\")] \
|
||||
mod m { }");
|
||||
assert doc.topmod.mods()[0].brief == some("brief");
|
||||
assert doc.topmod.mods()[0].desc == some("desc");
|
||||
assert doc.topmod.mods()[0].brief() == some("brief");
|
||||
assert doc.topmod.mods()[0].desc() == some("desc");
|
||||
}
|
||||
|
||||
#[test]
|
||||
@ -27,8 +27,8 @@ fn should_trim_const() {
|
||||
let doc = test::mk_doc("#[doc(brief = \"\nbrief\n\", \
|
||||
desc = \"\ndesc\n\")] \
|
||||
const a: bool = true;");
|
||||
assert doc.topmod.consts()[0].brief == some("brief");
|
||||
assert doc.topmod.consts()[0].desc == some("desc");
|
||||
assert doc.topmod.consts()[0].brief() == some("brief");
|
||||
assert doc.topmod.consts()[0].desc() == some("desc");
|
||||
}
|
||||
|
||||
#[test]
|
||||
@ -36,8 +36,8 @@ fn should_trim_fn() {
|
||||
let doc = test::mk_doc("#[doc(brief = \"\nbrief\n\", \
|
||||
desc = \"\ndesc\n\")] \
|
||||
fn a() { }");
|
||||
assert doc.topmod.fns()[0].brief == some("brief");
|
||||
assert doc.topmod.fns()[0].desc == some("desc");
|
||||
assert doc.topmod.fns()[0].brief() == some("brief");
|
||||
assert doc.topmod.fns()[0].desc() == some("desc");
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
@ -36,9 +36,9 @@ fn fold_fn(
|
||||
let srv = fold.ctxt;
|
||||
|
||||
{
|
||||
args: merge_arg_tys(srv, doc.id, doc.args),
|
||||
return: merge_ret_ty(srv, doc.id, doc.return),
|
||||
sig: get_fn_sig(srv, doc.id)
|
||||
args: merge_arg_tys(srv, doc.id(), doc.args),
|
||||
return: merge_ret_ty(srv, doc.id(), doc.return),
|
||||
sig: get_fn_sig(srv, doc.id())
|
||||
with doc
|
||||
}
|
||||
}
|
||||
@ -164,7 +164,7 @@ fn fold_const(
|
||||
|
||||
{
|
||||
ty: some(astsrv::exec(srv) {|ctxt|
|
||||
alt check ctxt.ast_map.get(doc.id) {
|
||||
alt check ctxt.ast_map.get(doc.id()) {
|
||||
ast_map::node_item(@{
|
||||
node: ast::item_const(ty, _), _
|
||||
}, _) {
|
||||
@ -191,7 +191,7 @@ fn fold_enum(
|
||||
{
|
||||
variants: vec::map(doc.variants) {|variant|
|
||||
let sig = astsrv::exec(srv) {|ctxt|
|
||||
alt check ctxt.ast_map.get(doc.id) {
|
||||
alt check ctxt.ast_map.get(doc.id()) {
|
||||
ast_map::node_item(@{
|
||||
node: ast::item_enum(ast_variants, _), _
|
||||
}, _) {
|
||||
@ -227,13 +227,13 @@ fn fold_res(
|
||||
let srv = fold.ctxt;
|
||||
|
||||
{
|
||||
args: merge_arg_tys(srv, doc.id, doc.args),
|
||||
args: merge_arg_tys(srv, doc.id(), doc.args),
|
||||
sig: some(astsrv::exec(srv) {|ctxt|
|
||||
alt check ctxt.ast_map.get(doc.id) {
|
||||
alt check ctxt.ast_map.get(doc.id()) {
|
||||
ast_map::node_item(@{
|
||||
node: ast::item_res(decl, _, _, _, _), _
|
||||
}, _) {
|
||||
pprust::res_to_str(decl, doc.name, [])
|
||||
pprust::res_to_str(decl, doc.name(), [])
|
||||
}
|
||||
}
|
||||
})
|
||||
@ -258,7 +258,7 @@ fn fold_iface(
|
||||
doc: doc::ifacedoc
|
||||
) -> doc::ifacedoc {
|
||||
{
|
||||
methods: merge_methods(fold.ctxt, doc.id, doc.methods)
|
||||
methods: merge_methods(fold.ctxt, doc.id(), doc.methods)
|
||||
with doc
|
||||
}
|
||||
}
|
||||
@ -456,7 +456,7 @@ fn fold_impl(
|
||||
let srv = fold.ctxt;
|
||||
|
||||
let (iface_ty, self_ty) = astsrv::exec(srv) {|ctxt|
|
||||
alt ctxt.ast_map.get(doc.id) {
|
||||
alt ctxt.ast_map.get(doc.id()) {
|
||||
ast_map::node_item(@{
|
||||
node: ast::item_impl(_, iface_ty, self_ty, _), _
|
||||
}, _) {
|
||||
@ -472,7 +472,7 @@ fn fold_impl(
|
||||
{
|
||||
iface_ty: iface_ty,
|
||||
self_ty: self_ty,
|
||||
methods: merge_methods(fold.ctxt, doc.id, doc.methods)
|
||||
methods: merge_methods(fold.ctxt, doc.id(), doc.methods)
|
||||
with doc
|
||||
}
|
||||
}
|
||||
@ -530,7 +530,7 @@ fn fold_type(
|
||||
|
||||
{
|
||||
sig: astsrv::exec(srv) {|ctxt|
|
||||
alt ctxt.ast_map.get(doc.id) {
|
||||
alt ctxt.ast_map.get(doc.id()) {
|
||||
ast_map::node_item(@{
|
||||
ident: ident,
|
||||
node: ast::item_ty(ty, params), _
|
||||
|
Loading…
x
Reference in New Issue
Block a user