about summary refs log tree commit diff
path: root/src/rustdoc
diff options
context:
space:
mode:
authorBrian Anderson <banderson@mozilla.com>2012-01-18 18:35:55 -0800
committerBrian Anderson <banderson@mozilla.com>2012-01-18 19:59:24 -0800
commite39e34776e97073e3ef6f2ef4c226e73ba701fe7 (patch)
tree071cde58e472fce4b53ab4e4a3797d3513beb48f /src/rustdoc
parent5bbf72e11c1b0dd5cb53c5c65bf358cfd1ea5b0d (diff)
downloadrust-e39e34776e97073e3ef6f2ef4c226e73ba701fe7.tar.gz
rust-e39e34776e97073e3ef6f2ef4c226e73ba701fe7.zip
rustdoc: Assign AST ids to mod docs
Diffstat (limited to 'src/rustdoc')
-rw-r--r--src/rustdoc/doc.rs1
-rw-r--r--src/rustdoc/extract.rs16
-rw-r--r--src/rustdoc/parse.rs2
-rwxr-xr-xsrc/rustdoc/rustdoc.rs2
4 files changed, 17 insertions, 4 deletions
diff --git a/src/rustdoc/doc.rs b/src/rustdoc/doc.rs
index c601cbfe365..a479e5f3dd7 100644
--- a/src/rustdoc/doc.rs
+++ b/src/rustdoc/doc.rs
@@ -7,6 +7,7 @@ type cratedoc = ~{
 };
 
 type moddoc = ~{
+    id: ast_id,
     name: str,
     brief: option<str>,
     desc: option<str>,
diff --git a/src/rustdoc/extract.rs b/src/rustdoc/extract.rs
index 3411432ce22..eacb982252f 100644
--- a/src/rustdoc/extract.rs
+++ b/src/rustdoc/extract.rs
@@ -29,14 +29,16 @@ fn top_moddoc_from_crate(
     crate: @ast::crate,
     default_name: str
 ) -> doc::moddoc {
-    moddoc_from_mod(crate.node.module, default_name)
+    moddoc_from_mod(crate.node.module, default_name, ast::crate_node_id)
 }
 
 fn moddoc_from_mod(
     module: ast::_mod,
-    name: ast::ident
+    name: ast::ident,
+    id: ast::node_id
 ) -> doc::moddoc {
     ~{
+        id: id,
         name: name,
         brief: none,
         desc: none,
@@ -44,7 +46,7 @@ fn moddoc_from_mod(
             vec::filter_map(module.items) {|item|
                 alt item.node {
                   ast::item_mod(m) {
-                    some(moddoc_from_mod(m, item.ident))
+                    some(moddoc_from_mod(m, item.ident, item.id))
                   }
                   _ {
                     none
@@ -134,6 +136,14 @@ mod tests {
     }
 
     #[test]
+    fn extract_should_set_mod_ast_id() {
+        let source = "mod a { }";
+        let ast = parse::from_str(source);
+        let doc = extract(ast, "");
+        assert doc.topmod.mods[0].id != 0;
+    }
+
+    #[test]
     fn extract_fns() {
         let source =
             "fn a() { } \
diff --git a/src/rustdoc/parse.rs b/src/rustdoc/parse.rs
index ae6ce36136c..0afc625378d 100644
--- a/src/rustdoc/parse.rs
+++ b/src/rustdoc/parse.rs
@@ -11,7 +11,7 @@ fn new_parse_sess() -> parser::parse_sess {
     let cm = codemap::new_codemap();
     let sess = @{
         cm: cm,
-        mutable next_id: 0,
+        mutable next_id: 1,
         diagnostic: diagnostic::mk_handler(cm, none)
     };
     ret sess;
diff --git a/src/rustdoc/rustdoc.rs b/src/rustdoc/rustdoc.rs
index ba58c490902..b58850b7e3e 100755
--- a/src/rustdoc/rustdoc.rs
+++ b/src/rustdoc/rustdoc.rs
@@ -26,6 +26,7 @@ fn test_run_passes() {
     ) -> doc::cratedoc {
         ~{
             topmod: ~{
+                id: 0,
                 name: doc.topmod.name + "two",
                 brief: none,
                 desc: none,
@@ -40,6 +41,7 @@ fn test_run_passes() {
     ) -> doc::cratedoc {
         ~{
             topmod: ~{
+                id: 0,
                 name: doc.topmod.name + "three",
                 brief: none,
                 desc: none,