diff options
| author | bors <bors@rust-lang.org> | 2014-02-28 19:01:38 -0800 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2014-02-28 19:01:38 -0800 |
| commit | 123eb4ebea695f724a2375a73db53b91273e5ce0 (patch) | |
| tree | ec78749eabc77af4f6b519904ffc9b8469af8f80 | |
| parent | 5b4a141b6adceeb82f5a2c97cdf55224fa56826e (diff) | |
| parent | 5d825def29ba347c4f99d25a131981b632780516 (diff) | |
| download | rust-123eb4ebea695f724a2375a73db53b91273e5ce0.tar.gz rust-123eb4ebea695f724a2375a73db53b91273e5ce0.zip | |
auto merge of #12632 : fhahn/rust/issue-12507-rustdoc-std-module, r=alexcrichton
This PR for #12507 marks the top level `Module` in rustdoc as a crate and does render the header accordingly.
| -rw-r--r-- | src/librustdoc/clean.rs | 2 | ||||
| -rw-r--r-- | src/librustdoc/doctree.rs | 2 | ||||
| -rw-r--r-- | src/librustdoc/fold.rs | 5 | ||||
| -rw-r--r-- | src/librustdoc/html/render.rs | 6 | ||||
| -rw-r--r-- | src/librustdoc/visit_ast.rs | 1 |
5 files changed, 14 insertions, 2 deletions
diff --git a/src/librustdoc/clean.rs b/src/librustdoc/clean.rs index 2f6f6726be6..fc517a8c2e8 100644 --- a/src/librustdoc/clean.rs +++ b/src/librustdoc/clean.rs @@ -186,6 +186,7 @@ pub enum ItemEnum { #[deriving(Clone, Encodable, Decodable)] pub struct Module { items: ~[Item], + is_crate: bool, } impl Clean<Item> for doctree::Module { @@ -202,6 +203,7 @@ impl Clean<Item> for doctree::Module { visibility: self.vis.clean(), id: self.id, inner: ModuleItem(Module { + is_crate: self.is_crate, items: [self.structs.clean(), self.enums.clean(), self.fns.clean(), self.foreigns.clean().concat_vec(), self.mods.clean(), self.typedefs.clean(), diff --git a/src/librustdoc/doctree.rs b/src/librustdoc/doctree.rs index af082544532..c5849f5aa28 100644 --- a/src/librustdoc/doctree.rs +++ b/src/librustdoc/doctree.rs @@ -33,6 +33,7 @@ pub struct Module { foreigns: ~[ast::ForeignMod], view_items: ~[ast::ViewItem], macros: ~[Macro], + is_crate: bool, } impl Module { @@ -54,6 +55,7 @@ impl Module { view_items : ~[], foreigns : ~[], macros : ~[], + is_crate : false, } } } diff --git a/src/librustdoc/fold.rs b/src/librustdoc/fold.rs index fee27bd5b31..672b46afcd0 100644 --- a/src/librustdoc/fold.rs +++ b/src/librustdoc/fold.rs @@ -87,7 +87,10 @@ pub trait DocFolder { } fn fold_mod(&mut self, m: Module) -> Module { - Module { items: m.items.move_iter().filter_map(|i| self.fold_item(i)).collect() } + Module { + is_crate: m.is_crate, + items: m.items.move_iter().filter_map(|i| self.fold_item(i)).collect() + } } fn fold_crate(&mut self, mut c: Crate) -> Crate { diff --git a/src/librustdoc/html/render.rs b/src/librustdoc/html/render.rs index 919a7b208d4..cf488fa53d3 100644 --- a/src/librustdoc/html/render.rs +++ b/src/librustdoc/html/render.rs @@ -863,7 +863,11 @@ impl<'a> fmt::Show for Item<'a> { // Write the breadcrumb trail header for the top try!(write!(fmt.buf, "<h1 class='fqn'>")); match self.item.inner { - clean::ModuleItem(..) => try!(write!(fmt.buf, "Module ")), + clean::ModuleItem(ref m) => if m.is_crate { + try!(write!(fmt.buf, "Crate ")); + } else { + try!(write!(fmt.buf, "Module ")); + }, clean::FunctionItem(..) => try!(write!(fmt.buf, "Function ")), clean::TraitItem(..) => try!(write!(fmt.buf, "Trait ")), clean::StructItem(..) => try!(write!(fmt.buf, "Struct ")), diff --git a/src/librustdoc/visit_ast.rs b/src/librustdoc/visit_ast.rs index ef02d734567..994ee7ea03e 100644 --- a/src/librustdoc/visit_ast.rs +++ b/src/librustdoc/visit_ast.rs @@ -44,6 +44,7 @@ impl<'a> RustdocVisitor<'a> { self.module = self.visit_mod_contents(krate.span, krate.attrs.clone(), ast::Public, ast::CRATE_NODE_ID, &krate.module, None); + self.module.is_crate = true; } pub fn visit_struct_def(&mut self, item: &ast::Item, sd: @ast::StructDef, |
