Skip to content

Commit fd7bb70

Browse files
committed
rustdoc: Promote iface descriptions to brief descriptions
1 parent a640306 commit fd7bb70

File tree

1 file changed

+44
-1
lines changed

1 file changed

+44
-1
lines changed

src/rustdoc/desc_to_brief_pass.rs

Lines changed: 44 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,8 @@ fn run(
2222
fold_const: fold_const,
2323
fold_fn: fold_fn,
2424
fold_enum: fold_enum,
25-
fold_res: fold_res
25+
fold_res: fold_res,
26+
fold_iface: fold_iface
2627
with *fold::default_seq_fold(())
2728
});
2829
fold.fold_crate(fold, doc)
@@ -83,6 +84,26 @@ fn fold_res(fold: fold::fold<()>, doc: doc::resdoc) -> doc::resdoc {
8384
}
8485
}
8586

87+
fn fold_iface(fold: fold::fold<()>, doc: doc::ifacedoc) -> doc::ifacedoc {
88+
let doc =fold::default_seq_fold_iface(fold, doc);
89+
let (brief, desc) = modify(doc.brief, doc.desc);
90+
91+
{
92+
brief: brief,
93+
desc: desc,
94+
methods: vec::map(doc.methods) {|doc|
95+
let (brief, desc) = modify(doc.brief, doc.desc);
96+
97+
{
98+
brief: brief,
99+
desc: desc
100+
with doc
101+
}
102+
}
103+
with doc
104+
}
105+
}
106+
86107
#[test]
87108
fn should_promote_mod_desc() {
88109
let source = "#[doc(desc = \"desc\")] mod m { }";
@@ -138,6 +159,28 @@ fn should_promote_resource_desc() {
138159
assert doc.topmod.resources()[0].desc == none;
139160
}
140161

162+
#[test]
163+
fn should_promote_iface_desc() {
164+
let source = "#[doc(desc = \"desc\")] iface i { fn a(); }";
165+
let srv = astsrv::mk_srv_from_str(source);
166+
let doc = extract::from_srv(srv, "");
167+
let doc = attr_pass::mk_pass()(srv, doc);
168+
let doc = run(srv, doc);
169+
assert doc.topmod.ifaces()[0].brief == some("desc");
170+
assert doc.topmod.ifaces()[0].desc == none;
171+
}
172+
173+
#[test]
174+
fn should_promote_iface_method_desc() {
175+
let source = "iface i { #[doc(desc = \"desc\")] fn a(); }";
176+
let srv = astsrv::mk_srv_from_str(source);
177+
let doc = extract::from_srv(srv, "");
178+
let doc = attr_pass::mk_pass()(srv, doc);
179+
let doc = run(srv, doc);
180+
assert doc.topmod.ifaces()[0].methods[0].brief == some("desc");
181+
assert doc.topmod.ifaces()[0].methods[0].desc == none;
182+
}
183+
141184
fn modify(
142185
brief: option<str>,
143186
desc: option<str>

0 commit comments

Comments
 (0)