Skip to content

Commit 5d825de

Browse files
committed
Mark top level module as a crate in rustdoc, closes #12507
1 parent 68a92c5 commit 5d825de

File tree

5 files changed

+14
-2
lines changed

5 files changed

+14
-2
lines changed

src/librustdoc/clean.rs

+2
Original file line numberDiff line numberDiff line change
@@ -186,6 +186,7 @@ pub enum ItemEnum {
186186
#[deriving(Clone, Encodable, Decodable)]
187187
pub struct Module {
188188
items: ~[Item],
189+
is_crate: bool,
189190
}
190191

191192
impl Clean<Item> for doctree::Module {
@@ -202,6 +203,7 @@ impl Clean<Item> for doctree::Module {
202203
visibility: self.vis.clean(),
203204
id: self.id,
204205
inner: ModuleItem(Module {
206+
is_crate: self.is_crate,
205207
items: [self.structs.clean(), self.enums.clean(),
206208
self.fns.clean(), self.foreigns.clean().concat_vec(),
207209
self.mods.clean(), self.typedefs.clean(),

src/librustdoc/doctree.rs

+2
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ pub struct Module {
3333
foreigns: ~[ast::ForeignMod],
3434
view_items: ~[ast::ViewItem],
3535
macros: ~[Macro],
36+
is_crate: bool,
3637
}
3738

3839
impl Module {
@@ -54,6 +55,7 @@ impl Module {
5455
view_items : ~[],
5556
foreigns : ~[],
5657
macros : ~[],
58+
is_crate : false,
5759
}
5860
}
5961
}

src/librustdoc/fold.rs

+4-1
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,10 @@ pub trait DocFolder {
8787
}
8888

8989
fn fold_mod(&mut self, m: Module) -> Module {
90-
Module { items: m.items.move_iter().filter_map(|i| self.fold_item(i)).collect() }
90+
Module {
91+
is_crate: m.is_crate,
92+
items: m.items.move_iter().filter_map(|i| self.fold_item(i)).collect()
93+
}
9194
}
9295

9396
fn fold_crate(&mut self, mut c: Crate) -> Crate {

src/librustdoc/html/render.rs

+5-1
Original file line numberDiff line numberDiff line change
@@ -863,7 +863,11 @@ impl<'a> fmt::Show for Item<'a> {
863863
// Write the breadcrumb trail header for the top
864864
try!(write!(fmt.buf, "<h1 class='fqn'>"));
865865
match self.item.inner {
866-
clean::ModuleItem(..) => try!(write!(fmt.buf, "Module ")),
866+
clean::ModuleItem(ref m) => if m.is_crate {
867+
try!(write!(fmt.buf, "Crate "));
868+
} else {
869+
try!(write!(fmt.buf, "Module "));
870+
},
867871
clean::FunctionItem(..) => try!(write!(fmt.buf, "Function ")),
868872
clean::TraitItem(..) => try!(write!(fmt.buf, "Trait ")),
869873
clean::StructItem(..) => try!(write!(fmt.buf, "Struct ")),

src/librustdoc/visit_ast.rs

+1
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ impl<'a> RustdocVisitor<'a> {
4444
self.module = self.visit_mod_contents(krate.span, krate.attrs.clone(),
4545
ast::Public, ast::CRATE_NODE_ID,
4646
&krate.module, None);
47+
self.module.is_crate = true;
4748
}
4849

4950
pub fn visit_struct_def(&mut self, item: &ast::Item, sd: @ast::StructDef,

0 commit comments

Comments
 (0)