1
Fork 0

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.
This commit is contained in:
bors 2014-02-28 19:01:38 -08:00
commit 123eb4ebea
5 changed files with 14 additions and 2 deletions

View file

@ -186,6 +186,7 @@ pub enum ItemEnum {
#[deriving(Clone, Encodable, Decodable)] #[deriving(Clone, Encodable, Decodable)]
pub struct Module { pub struct Module {
items: ~[Item], items: ~[Item],
is_crate: bool,
} }
impl Clean<Item> for doctree::Module { impl Clean<Item> for doctree::Module {
@ -202,6 +203,7 @@ impl Clean<Item> for doctree::Module {
visibility: self.vis.clean(), visibility: self.vis.clean(),
id: self.id, id: self.id,
inner: ModuleItem(Module { inner: ModuleItem(Module {
is_crate: self.is_crate,
items: [self.structs.clean(), self.enums.clean(), items: [self.structs.clean(), self.enums.clean(),
self.fns.clean(), self.foreigns.clean().concat_vec(), self.fns.clean(), self.foreigns.clean().concat_vec(),
self.mods.clean(), self.typedefs.clean(), self.mods.clean(), self.typedefs.clean(),

View file

@ -33,6 +33,7 @@ pub struct Module {
foreigns: ~[ast::ForeignMod], foreigns: ~[ast::ForeignMod],
view_items: ~[ast::ViewItem], view_items: ~[ast::ViewItem],
macros: ~[Macro], macros: ~[Macro],
is_crate: bool,
} }
impl Module { impl Module {
@ -54,6 +55,7 @@ impl Module {
view_items : ~[], view_items : ~[],
foreigns : ~[], foreigns : ~[],
macros : ~[], macros : ~[],
is_crate : false,
} }
} }
} }

View file

@ -87,7 +87,10 @@ pub trait DocFolder {
} }
fn fold_mod(&mut self, m: Module) -> Module { 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 { fn fold_crate(&mut self, mut c: Crate) -> Crate {

View file

@ -863,7 +863,11 @@ impl<'a> fmt::Show for Item<'a> {
// Write the breadcrumb trail header for the top // Write the breadcrumb trail header for the top
try!(write!(fmt.buf, "<h1 class='fqn'>")); try!(write!(fmt.buf, "<h1 class='fqn'>"));
match self.item.inner { 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::FunctionItem(..) => try!(write!(fmt.buf, "Function ")),
clean::TraitItem(..) => try!(write!(fmt.buf, "Trait ")), clean::TraitItem(..) => try!(write!(fmt.buf, "Trait ")),
clean::StructItem(..) => try!(write!(fmt.buf, "Struct ")), clean::StructItem(..) => try!(write!(fmt.buf, "Struct ")),

View file

@ -44,6 +44,7 @@ impl<'a> RustdocVisitor<'a> {
self.module = self.visit_mod_contents(krate.span, krate.attrs.clone(), self.module = self.visit_mod_contents(krate.span, krate.attrs.clone(),
ast::Public, ast::CRATE_NODE_ID, ast::Public, ast::CRATE_NODE_ID,
&krate.module, None); &krate.module, None);
self.module.is_crate = true;
} }
pub fn visit_struct_def(&mut self, item: &ast::Item, sd: @ast::StructDef, pub fn visit_struct_def(&mut self, item: &ast::Item, sd: @ast::StructDef,