diff options
| author | Brian Anderson <banderson@mozilla.com> | 2012-01-28 15:45:19 -0800 |
|---|---|---|
| committer | Brian Anderson <banderson@mozilla.com> | 2012-01-29 12:46:26 -0800 |
| commit | 5aa6c3a49a924c077641df6c5308586a0b0390cd (patch) | |
| tree | 965417e0bcf8c311764ec86b863d25cce1b537ae /src | |
| parent | 95e2b1b8f91c3381b9b02b53a544a5f35eb2c853 (diff) | |
rustdoc: Move const docs into the item tag
Diffstat (limited to 'src')
| -rw-r--r-- | src/rustdoc/attr_pass.rs | 2 | ||||
| -rw-r--r-- | src/rustdoc/desc_to_brief_pass.rs | 4 | ||||
| -rw-r--r-- | src/rustdoc/doc.rs | 13 | ||||
| -rw-r--r-- | src/rustdoc/extract.rs | 20 | ||||
| -rw-r--r-- | src/rustdoc/fold.rs | 29 | ||||
| -rw-r--r-- | src/rustdoc/markdown_pass.rs | 5 | ||||
| -rw-r--r-- | src/rustdoc/prune_undoc_pass.rs | 27 | ||||
| -rw-r--r-- | src/rustdoc/prune_unexported_pass.rs | 44 | ||||
| -rwxr-xr-x | src/rustdoc/rustdoc.rs | 6 | ||||
| -rw-r--r-- | src/rustdoc/trim_pass.rs | 4 | ||||
| -rw-r--r-- | src/rustdoc/tystr_pass.rs | 2 |
11 files changed, 48 insertions, 108 deletions
diff --git a/src/rustdoc/attr_pass.rs b/src/rustdoc/attr_pass.rs index bb24e4e06fd..dd8a7390fc7 100644 --- a/src/rustdoc/attr_pass.rs +++ b/src/rustdoc/attr_pass.rs @@ -247,7 +247,7 @@ fn fold_const_should_extract_docs() { let srv = astsrv::mk_srv_from_str(source); let doc = extract::from_srv(srv, ""); let fold = fold::default_seq_fold(srv); - let doc = fold_const(fold, doc.topmod.consts[0]); + let doc = fold_const(fold, doc.topmod.consts()[0]); assert doc.brief == some("foo"); assert doc.desc == some("bar"); } diff --git a/src/rustdoc/desc_to_brief_pass.rs b/src/rustdoc/desc_to_brief_pass.rs index 3bf0ad6d4c5..f0450b69a7d 100644 --- a/src/rustdoc/desc_to_brief_pass.rs +++ b/src/rustdoc/desc_to_brief_pass.rs @@ -101,8 +101,8 @@ fn should_promote_const_desc() { let doc = extract::from_srv(srv, ""); let doc = attr_pass::mk_pass()(srv, doc); let doc = run(srv, doc); - 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] diff --git a/src/rustdoc/doc.rs b/src/rustdoc/doc.rs index 48d173ae70a..4910233bfce 100644 --- a/src/rustdoc/doc.rs +++ b/src/rustdoc/doc.rs @@ -22,8 +22,7 @@ type moddoc = ~{ desc: option<str>, items: [itemtag], mods: modlist, - fns: fnlist, - consts: constlist + fns: fnlist }; type constdoc = ~{ @@ -81,11 +80,19 @@ type resdoc = ~{ // Just to break the structural recursive types enum modlist = [moddoc]; -enum constlist = [constdoc]; enum fnlist = [fndoc]; impl util for moddoc { + fn consts() -> [constdoc] { + vec::filter_map(self.items) {|itemtag| + alt itemtag { + consttag(constdoc) { some(constdoc) } + _ { none } + } + } + } + fn enums() -> [enumdoc] { vec::filter_map(self.items) {|itemtag| alt itemtag { diff --git a/src/rustdoc/extract.rs b/src/rustdoc/extract.rs index 6e48f107201..f0c41c77945 100644 --- a/src/rustdoc/extract.rs +++ b/src/rustdoc/extract.rs @@ -45,6 +45,11 @@ fn moddoc_from_mod( desc: none, items: vec::filter_map(module.items) {|item| alt item.node { + ast::item_const(_, _) { + some(doc::consttag( + constdoc_from_const(item.ident, item.id) + )) + } ast::item_enum(variants, _) { some(doc::enumtag( enumdoc_from_enum(item.ident, item.id, variants) @@ -82,17 +87,6 @@ fn moddoc_from_mod( none } } - }), - consts: doc::constlist( - vec::filter_map(module.items) {|item| - alt item.node { - ast::item_const(_, _) { - some(constdoc_from_const(item.ident, item.id)) - } - _ { - none - } - } }) } } @@ -157,8 +151,8 @@ fn should_extract_const_name_and_id() { let source = "const a: int = 0;"; let ast = parse::from_str(source); let doc = extract(ast, ""); - 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( diff --git a/src/rustdoc/fold.rs b/src/rustdoc/fold.rs index 254193a881e..7ad102efc17 100644 --- a/src/rustdoc/fold.rs +++ b/src/rustdoc/fold.rs @@ -22,8 +22,6 @@ type fold_enum<T> = fn~(fold: fold<T>, doc: doc::enumdoc) -> doc::enumdoc; type fold_res<T> = fn~(fold: fold<T>, doc: doc::resdoc) -> doc::resdoc; type fold_modlist<T> = fn~(fold: fold<T>, list: doc::modlist) -> doc::modlist; type fold_fnlist<T> = fn~(fold: fold<T>, list: doc::fnlist) -> doc::fnlist; -type fold_constlist<T> = fn~( - fold: fold<T>, list: doc::constlist) -> doc::constlist; type t<T> = { ctxt: T, @@ -34,8 +32,7 @@ type t<T> = { fold_enum: fold_enum<T>, fold_res: fold_res<T>, fold_modlist: fold_modlist<T>, - fold_fnlist: fold_fnlist<T>, - fold_constlist: fold_constlist<T> + fold_fnlist: fold_fnlist<T> }; @@ -50,8 +47,7 @@ fn mk_fold<T:copy>( fold_enum: fold_enum<T>, fold_res: fold_res<T>, fold_modlist: fold_modlist<T>, - fold_fnlist: fold_fnlist<T>, - fold_constlist: fold_constlist<T> + fold_fnlist: fold_fnlist<T> ) -> fold<T> { fold({ ctxt: ctxt, @@ -62,8 +58,7 @@ fn mk_fold<T:copy>( fold_enum: fold_enum, fold_res: fold_res, fold_modlist: fold_modlist, - fold_fnlist: fold_fnlist, - fold_constlist: fold_constlist + fold_fnlist: fold_fnlist }) } @@ -77,8 +72,7 @@ fn default_seq_fold<T:copy>(ctxt: T) -> fold<T> { {|f, d| default_seq_fold_enum(f, d)}, {|f, d| default_seq_fold_res(f, d)}, {|f, d| default_seq_fold_modlist(f, d)}, - {|f, d| default_seq_fold_fnlist(f, d)}, - {|f, d| default_seq_fold_constlist(f, d)} + {|f, d| default_seq_fold_fnlist(f, d)} ) } @@ -98,6 +92,9 @@ fn default_seq_fold_mod<T>( ~{ items: vec::map(doc.items) {|itemtag| alt itemtag { + doc::consttag(constdoc) { + doc::consttag(fold.fold_const(fold, constdoc)) + } doc::enumtag(enumdoc) { doc::enumtag(fold.fold_enum(fold, enumdoc)) } @@ -107,8 +104,7 @@ fn default_seq_fold_mod<T>( } }, mods: fold.fold_modlist(fold, doc.mods), - fns: fold.fold_fnlist(fold, doc.fns), - consts: fold.fold_constlist(fold, doc.consts) + fns: fold.fold_fnlist(fold, doc.fns) with *doc } } @@ -159,15 +155,6 @@ fn default_seq_fold_fnlist<T>( }) } -fn default_seq_fold_constlist<T>( - fold: fold<T>, - list: doc::constlist -) -> doc::constlist { - doc::constlist(vec::map(*list) {|doc| - fold.fold_const(fold, doc) - }) -} - #[test] fn default_fold_should_produce_same_doc() { let source = "mod a { fn b() { } mod c { fn d() { } } }"; diff --git a/src/rustdoc/markdown_pass.rs b/src/rustdoc/markdown_pass.rs index ae94e4f7cfd..f7d450c0c40 100644 --- a/src/rustdoc/markdown_pass.rs +++ b/src/rustdoc/markdown_pass.rs @@ -81,10 +81,6 @@ fn write_mod_contents( write_brief(ctxt, doc.brief); write_desc(ctxt, doc.desc); - for constdoc in *doc.consts { - write_const(ctxt, constdoc); - } - for fndoc in *doc.fns { write_fn(ctxt, fndoc); } @@ -95,6 +91,7 @@ fn write_mod_contents( for itemtag in doc.items { alt itemtag { + doc::consttag(constdoc) { write_const(ctxt, constdoc) } doc::enumtag(enumdoc) { write_enum(ctxt, enumdoc) } doc::restag(resdoc) { write_res(ctxt, resdoc) } } diff --git a/src/rustdoc/prune_undoc_pass.rs b/src/rustdoc/prune_undoc_pass.rs index 8c4a11b5ad1..814079a98f2 100644 --- a/src/rustdoc/prune_undoc_pass.rs +++ b/src/rustdoc/prune_undoc_pass.rs @@ -24,8 +24,7 @@ fn run( fold_enum: fold_enum, fold_res: fold_res, fold_modlist: fold_modlist, - fold_fnlist: fold_fnlist, - fold_constlist: fold_constlist + fold_fnlist: fold_fnlist with *fold::default_seq_fold(ctxt) }); fold.fold_crate(fold, doc) @@ -38,6 +37,14 @@ fn fold_mod( let doc = ~{ items: vec::filter_map(doc.items) {|itemtag| alt itemtag { + doc::consttag(constdoc) { + let doc = fold.fold_const(fold, constdoc); + if fold.ctxt.have_docs { + some(doc::consttag(doc)) + } else { + none + } + } doc::enumtag(enumdoc) { let doc = fold.fold_enum(fold, enumdoc); if fold.ctxt.have_docs { @@ -219,27 +226,13 @@ fn fold_const( ret doc; } -fn fold_constlist( - fold: fold::fold<ctxt>, - list: doc::constlist -) -> doc::constlist { - doc::constlist(vec::filter_map(*list) {|doc| - let doc = fold.fold_const(fold, doc); - if fold.ctxt.have_docs { - some(doc) - } else { - none - } - }) -} - #[test] fn should_elide_undocumented_consts() { let source = "const a: bool = true;"; let srv = astsrv::mk_srv_from_str(source); let doc = extract::from_srv(srv, ""); let doc = run(srv, doc); - assert vec::is_empty(*doc.topmod.consts); + assert vec::is_empty(doc.topmod.consts()); } fn fold_enum(fold: fold::fold<ctxt>, doc: doc::enumdoc) -> doc::enumdoc { diff --git a/src/rustdoc/prune_unexported_pass.rs b/src/rustdoc/prune_unexported_pass.rs index 0d17f5defba..2bf7480932c 100644 --- a/src/rustdoc/prune_unexported_pass.rs +++ b/src/rustdoc/prune_unexported_pass.rs @@ -23,8 +23,7 @@ fn fold_mod(fold: fold::fold<astsrv::srv>, doc: doc::moddoc) -> doc::moddoc { ~{ items: exported_items(fold.ctxt, doc), mods: doc::modlist(exported_mods(fold.ctxt, doc)), - fns: doc::fnlist(exported_fns(fold.ctxt, doc)), - consts: doc::constlist(exported_consts(fold.ctxt, doc)) + fns: doc::fnlist(exported_fns(fold.ctxt, doc)) with *doc } } @@ -53,14 +52,6 @@ fn exported_fns(srv: astsrv::srv, doc: doc::moddoc) -> [doc::fndoc] { ) } -fn exported_consts(srv: astsrv::srv, doc: doc::moddoc) -> [doc::constdoc] { - exported_things( - srv, doc, - exported_consts_from_crate, - exported_consts_from_mod - ) -} - fn exported_things<T>( srv: astsrv::srv, doc: doc::moddoc, @@ -116,20 +107,6 @@ fn exported_fns_from_mod( exported_fns_from(srv, doc, bind is_exported_from_mod(_, doc.id, _)) } -fn exported_consts_from_crate( - srv: astsrv::srv, - doc: doc::moddoc -) -> [doc::constdoc] { - exported_consts_from(srv, doc, is_exported_from_crate) -} - -fn exported_consts_from_mod( - srv: astsrv::srv, - doc: doc::moddoc -) -> [doc::constdoc] { - exported_consts_from(srv, doc, bind is_exported_from_mod(_, doc.id, _)) -} - fn exported_items_from( srv: astsrv::srv, doc: doc::moddoc, @@ -137,6 +114,7 @@ fn exported_items_from( ) -> [doc::itemtag] { vec::filter_map(doc.items) { |itemtag| let name = alt itemtag { + doc::consttag(~{name, _}) { name } doc::enumtag(~{name, _}) { name } doc::restag(~{name, _}) { name } }; @@ -186,20 +164,6 @@ fn exported_mods_from( } } -fn exported_consts_from( - srv: astsrv::srv, - doc: doc::moddoc, - is_exported: fn(astsrv::srv, str) -> bool -) -> [doc::constdoc] { - vec::filter_map(*doc.consts) { |doc| - if is_exported(srv, doc.name) { - some(doc) - } else { - none - } - } -} - fn exported_variants_from( srv: astsrv::srv, doc: doc::enumdoc, @@ -285,7 +249,7 @@ fn should_prune_unexported_consts() { let srv = astsrv::mk_srv_from_str(source); let doc = extract::from_srv(srv, ""); let doc = run(srv, doc); - assert vec::len(*doc.topmod.mods[0].consts) == 1u; + assert vec::len(doc.topmod.mods[0].consts()) == 1u; } #[test] @@ -294,7 +258,7 @@ fn should_prune_unexported_consts_from_top_mod() { let srv = astsrv::mk_srv_from_str(source); let doc = extract::from_srv(srv, ""); let doc = run(srv, doc); - assert vec::len(*doc.topmod.consts) == 1u; + assert vec::len(doc.topmod.consts()) == 1u; } #[test] diff --git a/src/rustdoc/rustdoc.rs b/src/rustdoc/rustdoc.rs index f65b2f789e2..0b05afe310d 100755 --- a/src/rustdoc/rustdoc.rs +++ b/src/rustdoc/rustdoc.rs @@ -53,8 +53,7 @@ fn test_run_passes() { desc: none, items: [], mods: doc::modlist([]), - fns: doc::fnlist([]), - consts: doc::constlist([]) + fns: doc::fnlist([]) } } } @@ -71,8 +70,7 @@ fn test_run_passes() { desc: none, items: [], mods: doc::modlist([]), - fns: doc::fnlist([]), - consts: doc::constlist([]) + fns: doc::fnlist([]) } } } diff --git a/src/rustdoc/trim_pass.rs b/src/rustdoc/trim_pass.rs index 871605e5554..6ec3db4ec9c 100644 --- a/src/rustdoc/trim_pass.rs +++ b/src/rustdoc/trim_pass.rs @@ -35,8 +35,8 @@ fn should_trim_const() { let doc = extract::from_srv(srv, ""); let doc = attr_pass::mk_pass()(srv, doc); let doc = mk_pass()(srv, doc); - 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] diff --git a/src/rustdoc/tystr_pass.rs b/src/rustdoc/tystr_pass.rs index bc2e35e2622..06f69fdbb16 100644 --- a/src/rustdoc/tystr_pass.rs +++ b/src/rustdoc/tystr_pass.rs @@ -183,7 +183,7 @@ fn should_add_const_types() { let srv = astsrv::mk_srv_from_str(source); let doc = extract::from_srv(srv, ""); let doc = run(srv, doc); - assert doc.topmod.consts[0].ty == some("bool"); + assert doc.topmod.consts()[0].ty == some("bool"); } fn fold_enum( |
