rustdoc: Reexport native functions

This commit is contained in:
Brian Anderson 2012-02-24 15:59:34 -08:00
parent 396540f19d
commit 16d290d10c
1 changed files with 23 additions and 1 deletions

View File

@ -104,7 +104,8 @@ fn build_reexport_def_map(
// FIXME: Do a parallel fold
let fold = fold::fold({
fold_mod: fold_mod
fold_mod: fold_mod,
fold_nmod: fold_nmod
with *fold::default_seq_fold(ctxt)
});
@ -124,6 +125,19 @@ fn build_reexport_def_map(
ret doc;
}
fn fold_nmod(fold: fold::fold<ctxt>, doc: doc::nmoddoc) -> doc::nmoddoc {
let doc = fold::default_seq_fold_nmod(fold, doc);
for fndoc in doc.fns {
let def_id = ast_util::local_def(fndoc.id());
if fold.ctxt.def_set.contains_key(def_id) {
fold.ctxt.def_map.insert(def_id, doc::fntag(fndoc));
}
}
ret doc;
}
}
fn build_reexport_path_map(srv: astsrv::srv, -def_map: def_map) -> path_map {
@ -298,6 +312,14 @@ fn should_mark_reepxorts_as_such() {
assert doc.topmod.mods()[1].fns()[0].item.reexport == true;
}
#[test]
fn should_duplicate_reexported_native_fns() {
let source = "native mod a { fn b(); } \
mod c { import a::b; export b; }";
let doc = test::mk_doc(source);
assert doc.topmod.mods()[0].fns()[0].name() == "b";
}
#[test]
fn should_duplicate_multiple_reexported_items() {
let source = "mod a { \