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, desc: option, 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 @@ -133,6 +135,14 @@ mod tests { assert doc.topmod.mods[0].mods[0].mods[0].name == "c"; } + #[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 = 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,