about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/rustdoc/markdown_pass.rs5
-rw-r--r--src/rustdoc/path_pass.rs16
2 files changed, 20 insertions, 1 deletions
diff --git a/src/rustdoc/markdown_pass.rs b/src/rustdoc/markdown_pass.rs
index aaddb9663cb..79be115f390 100644
--- a/src/rustdoc/markdown_pass.rs
+++ b/src/rustdoc/markdown_pass.rs
@@ -158,6 +158,9 @@ fn should_write_crate_description() {
 }
 
 fn write_nmod(ctxt: ctxt, doc: doc::nmoddoc) {
+    let fullpath = str::connect(doc.path() + [doc.name()], "::");
+    write_header(ctxt, h1, #fmt("Native module `%s`", fullpath));
+
     write_brief(ctxt, doc.brief());
     write_desc(ctxt, doc.desc());
 
@@ -169,6 +172,8 @@ fn write_nmod(ctxt: ctxt, doc: doc::nmoddoc) {
 #[test]
 fn should_write_native_mods() {
     let markdown = test::render("#[doc = \"test\"] native mod a { }");
+    log(error, markdown);
+    assert str::contains(markdown, "Native module `a`");
     assert str::contains(markdown, "test");
 }
 
diff --git a/src/rustdoc/path_pass.rs b/src/rustdoc/path_pass.rs
index 8589e3264e0..737c7419084 100644
--- a/src/rustdoc/path_pass.rs
+++ b/src/rustdoc/path_pass.rs
@@ -47,7 +47,11 @@ fn fold_nmod(fold: fold::fold<ctxt>, doc: doc::nmoddoc) -> doc::nmoddoc {
     vec::push(fold.ctxt.path, doc.name());
     let doc = fold::default_seq_fold_nmod(fold, doc);
     vec::pop(fold.ctxt.path);
-    ret doc;
+
+    {
+        item: fold.fold_item(fold, doc.item)
+        with doc
+    }
 }
 
 #[test]
@@ -72,6 +76,16 @@ fn should_record_fn_paths() {
 }
 
 #[test]
+fn should_record_native_mod_paths() {
+    let source = "mod a { native mod b { } }";
+    astsrv::from_str(source) {|srv|
+        let doc = extract::from_srv(srv, "");
+        let doc = run(srv, doc);
+        assert doc.topmod.mods()[0].nmods()[0].path() == ["a"];
+    }
+}
+
+#[test]
 fn should_record_native_fn_paths() {
     let source = "native mod a { fn b(); }";
     astsrv::from_str(source) {|srv|