From 3f1534ad72465577ce5152d2d51e2aebeec143dc Mon Sep 17 00:00:00 2001 From: Brian Anderson Date: Tue, 31 Jan 2012 20:31:52 -0800 Subject: [PATCH] rustdoc: Promote impl descriptions to brief descriptions --- src/rustdoc/desc_to_brief_pass.rs | 39 ++++++++++++++++++++++++++++++- 1 file changed, 38 insertions(+), 1 deletion(-) diff --git a/src/rustdoc/desc_to_brief_pass.rs b/src/rustdoc/desc_to_brief_pass.rs index 00d1d6ba14a..315138db3d3 100644 --- a/src/rustdoc/desc_to_brief_pass.rs +++ b/src/rustdoc/desc_to_brief_pass.rs @@ -23,7 +23,8 @@ fn run( fold_fn: fold_fn, fold_enum: fold_enum, fold_res: fold_res, - fold_iface: fold_iface + fold_iface: fold_iface, + fold_impl: fold_impl with *fold::default_seq_fold(()) }); fold.fold_crate(fold, doc) @@ -104,6 +105,26 @@ fn fold_iface(fold: fold::fold<()>, doc: doc::ifacedoc) -> doc::ifacedoc { } } +fn fold_impl(fold: fold::fold<()>, doc: doc::impldoc) -> doc::impldoc { + let doc =fold::default_seq_fold_impl(fold, doc); + let (brief, desc) = modify(doc.brief, doc.desc); + + { + brief: brief, + desc: desc, + methods: vec::map(doc.methods) {|doc| + let (brief, desc) = modify(doc.brief, doc.desc); + + { + brief: brief, + desc: desc + with doc + } + } + with doc + } +} + #[test] fn should_promote_mod_desc() { let doc = test::mk_doc("#[doc(desc = \"desc\")] mod m { }"); @@ -154,6 +175,22 @@ fn should_promote_iface_method_desc() { assert doc.topmod.ifaces()[0].methods[0].desc == none; } +#[test] +fn should_promote_impl_desc() { + let doc = test::mk_doc( + "#[doc(desc = \"desc\")] impl i for int { fn a() { } }"); + assert doc.topmod.impls()[0].brief == some("desc"); + assert doc.topmod.impls()[0].desc == none; +} + +#[test] +fn should_promote_impl_method_desc() { + let doc = test::mk_doc( + "impl i for int { #[doc(desc = \"desc\")] fn a() { } }"); + assert doc.topmod.impls()[0].methods[0].brief == some("desc"); + assert doc.topmod.impls()[0].methods[0].desc == none; +} + #[cfg(test)] mod test { fn mk_doc(source: str) -> doc::cratedoc {