rustdoc: Add doc node for native mods
This commit is contained in:
parent
155a67eae7
commit
ba173d8409
@ -11,6 +11,7 @@ type cratedoc = {
|
||||
|
||||
enum itemtag {
|
||||
modtag(moddoc),
|
||||
nmodtag(nmoddoc),
|
||||
consttag(constdoc),
|
||||
fntag(fndoc),
|
||||
enumtag(enumdoc),
|
||||
@ -34,6 +35,11 @@ type moddoc = {
|
||||
items: ~[itemtag]
|
||||
};
|
||||
|
||||
type nmoddoc = {
|
||||
item: itemdoc,
|
||||
fns: ~[fndoc]
|
||||
};
|
||||
|
||||
type constdoc = {
|
||||
item: itemdoc,
|
||||
ty: option<str>
|
||||
@ -186,6 +192,7 @@ impl of item for itemtag {
|
||||
fn item() -> itemdoc {
|
||||
alt self {
|
||||
doc::modtag(doc) { doc.item }
|
||||
doc::nmodtag(doc) { doc.item }
|
||||
doc::fntag(doc) { doc.item }
|
||||
doc::consttag(doc) { doc.item }
|
||||
doc::enumtag(doc) { doc.item }
|
||||
@ -201,6 +208,10 @@ impl of item for moddoc {
|
||||
fn item() -> itemdoc { self.item }
|
||||
}
|
||||
|
||||
impl of item for nmoddoc {
|
||||
fn item() -> itemdoc { self.item }
|
||||
}
|
||||
|
||||
impl of item for fndoc {
|
||||
fn item() -> itemdoc { self.item }
|
||||
}
|
||||
|
@ -4,6 +4,7 @@ export default_seq_fold;
|
||||
export default_seq_fold_crate;
|
||||
export default_seq_fold_item;
|
||||
export default_seq_fold_mod;
|
||||
export default_seq_fold_nmod;
|
||||
export default_seq_fold_fn;
|
||||
export default_seq_fold_const;
|
||||
export default_seq_fold_enum;
|
||||
@ -21,6 +22,7 @@ enum fold<T> = t<T>;
|
||||
type fold_crate<T> = fn~(fold: fold<T>, doc: doc::cratedoc) -> doc::cratedoc;
|
||||
type fold_item<T> = fn~(fold: fold<T>, doc: doc::itemdoc) -> doc::itemdoc;
|
||||
type fold_mod<T> = fn~(fold: fold<T>, doc: doc::moddoc) -> doc::moddoc;
|
||||
type fold_nmod<T> = fn~(fold: fold<T>, doc: doc::nmoddoc) -> doc::nmoddoc;
|
||||
type fold_fn<T> = fn~(fold: fold<T>, doc: doc::fndoc) -> doc::fndoc;
|
||||
type fold_const<T> = fn~(fold: fold<T>, doc: doc::constdoc) -> doc::constdoc;
|
||||
type fold_enum<T> = fn~(fold: fold<T>, doc: doc::enumdoc) -> doc::enumdoc;
|
||||
@ -34,6 +36,7 @@ type t<T> = {
|
||||
fold_crate: fold_crate<T>,
|
||||
fold_item: fold_item<T>,
|
||||
fold_mod: fold_mod<T>,
|
||||
fold_nmod: fold_nmod<T>,
|
||||
fold_fn: fold_fn<T>,
|
||||
fold_const: fold_const<T>,
|
||||
fold_enum: fold_enum<T>,
|
||||
@ -51,6 +54,7 @@ fn mk_fold<T:copy>(
|
||||
fold_crate: fold_crate<T>,
|
||||
fold_item: fold_item<T>,
|
||||
fold_mod: fold_mod<T>,
|
||||
fold_nmod: fold_nmod<T>,
|
||||
fold_fn: fold_fn<T>,
|
||||
fold_const: fold_const<T>,
|
||||
fold_enum: fold_enum<T>,
|
||||
@ -64,6 +68,7 @@ fn mk_fold<T:copy>(
|
||||
fold_crate: fold_crate,
|
||||
fold_item: fold_item,
|
||||
fold_mod: fold_mod,
|
||||
fold_nmod: fold_nmod,
|
||||
fold_fn: fold_fn,
|
||||
fold_const: fold_const,
|
||||
fold_enum: fold_enum,
|
||||
@ -80,6 +85,7 @@ fn default_seq_fold<T:copy>(ctxt: T) -> fold<T> {
|
||||
{|f, d| default_seq_fold_crate(f, d)},
|
||||
{|f, d| default_seq_fold_item(f, d)},
|
||||
{|f, d| default_seq_fold_mod(f, d)},
|
||||
{|f, d| default_seq_fold_nmod(f, d)},
|
||||
{|f, d| default_seq_fold_fn(f, d)},
|
||||
{|f, d| default_seq_fold_const(f, d)},
|
||||
{|f, d| default_seq_fold_enum(f, d)},
|
||||
@ -96,6 +102,7 @@ fn default_par_fold<T:send>(ctxt: T) -> fold<T> {
|
||||
{|f, d| default_seq_fold_crate(f, d)},
|
||||
{|f, d| default_seq_fold_item(f, d)},
|
||||
{|f, d| default_par_fold_mod(f, d)},
|
||||
{|f, d| default_seq_fold_nmod(f, d)},
|
||||
{|f, d| default_seq_fold_fn(f, d)},
|
||||
{|f, d| default_seq_fold_const(f, d)},
|
||||
{|f, d| default_seq_fold_enum(f, d)},
|
||||
@ -141,6 +148,19 @@ fn default_seq_fold_mod<T>(
|
||||
}
|
||||
}
|
||||
|
||||
fn default_seq_fold_nmod<T>(
|
||||
fold: fold<T>,
|
||||
doc: doc::nmoddoc
|
||||
) -> doc::nmoddoc {
|
||||
{
|
||||
item: fold.fold_item(fold, doc.item),
|
||||
fns: ~vec::map(*doc.fns) {|fndoc|
|
||||
fold.fold_fn(fold, fndoc)
|
||||
}
|
||||
with doc
|
||||
}
|
||||
}
|
||||
|
||||
fn default_par_fold_mod<T:send>(
|
||||
fold: fold<T>,
|
||||
doc: doc::moddoc
|
||||
@ -166,6 +186,9 @@ fn fold_itemtag<T>(fold: fold<T>, doc: doc::itemtag) -> doc::itemtag {
|
||||
doc::modtag(moddoc) {
|
||||
doc::modtag(fold.fold_mod(fold, moddoc))
|
||||
}
|
||||
doc::nmodtag(nmoddoc) {
|
||||
doc::nmodtag(fold.fold_nmod(fold, nmoddoc))
|
||||
}
|
||||
doc::fntag(fndoc) {
|
||||
doc::fntag(fold.fold_fn(fold, fndoc))
|
||||
}
|
||||
|
@ -133,6 +133,7 @@ fn write_mod_contents(
|
||||
for itemtag in *doc.items {
|
||||
alt itemtag {
|
||||
doc::modtag(moddoc) { write_mod(ctxt, moddoc) }
|
||||
doc::nmodtag(_) { fail }
|
||||
doc::fntag(fndoc) { write_fn(ctxt, fndoc) }
|
||||
doc::consttag(constdoc) { write_const(ctxt, constdoc) }
|
||||
doc::enumtag(enumdoc) { write_enum(ctxt, enumdoc) }
|
||||
|
@ -227,6 +227,7 @@ fn merge_reexports(
|
||||
with doc
|
||||
})
|
||||
}
|
||||
doc::nmodtag(_) { fail }
|
||||
doc::consttag(doc @ {item, _}) {
|
||||
doc::consttag({
|
||||
item: rename(item, name)
|
||||
|
Loading…
x
Reference in New Issue
Block a user