about summary refs log tree commit diff
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2014-02-28 19:01:38 -0800
committerbors <bors@rust-lang.org>2014-02-28 19:01:38 -0800
commit123eb4ebea695f724a2375a73db53b91273e5ce0 (patch)
treeec78749eabc77af4f6b519904ffc9b8469af8f80
parent5b4a141b6adceeb82f5a2c97cdf55224fa56826e (diff)
parent5d825def29ba347c4f99d25a131981b632780516 (diff)
downloadrust-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.rs2
-rw-r--r--src/librustdoc/doctree.rs2
-rw-r--r--src/librustdoc/fold.rs5
-rw-r--r--src/librustdoc/html/render.rs6
-rw-r--r--src/librustdoc/visit_ast.rs1
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,