Skip to content

Commit 74ab606

Browse files
committed
rustdoc: Prune undocumented consts
1 parent e3be8e6 commit 74ab606

File tree

2 files changed

+40
-3
lines changed

2 files changed

+40
-3
lines changed

src/rustdoc/fold.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ export default_seq_fold;
77
export default_seq_fold_crate;
88
export default_seq_fold_mod;
99
export default_seq_fold_fn;
10+
export default_seq_fold_const;
1011
export default_seq_fold_fnlist;
1112

1213
enum fold<T> = t<T>;

src/rustdoc/prune_undoc_pass.rs

Lines changed: 39 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,10 @@ fn run(
2020
let fold = fold::fold({
2121
fold_mod: fold_mod,
2222
fold_fn: fold_fn,
23+
fold_const: fold_const,
2324
fold_modlist: fold_modlist,
24-
fold_fnlist: fold_fnlist
25+
fold_fnlist: fold_fnlist,
26+
fold_constlist: fold_constlist
2527
with *fold::default_seq_fold(ctxt)
2628
});
2729
fold.fold_crate(fold, doc)
@@ -109,7 +111,7 @@ fn fold_modlist(
109111
list: doc::modlist
110112
) -> doc::modlist {
111113
doc::modlist(vec::filter_map(*list) {|doc|
112-
let doc = fold_mod(fold, doc);
114+
let doc = fold.fold_mod(fold, doc);
113115
if fold.ctxt.have_docs {
114116
some(doc)
115117
} else {
@@ -152,7 +154,7 @@ fn fold_fnlist(
152154
list: doc::fnlist
153155
) -> doc::fnlist {
154156
doc::fnlist(vec::filter_map(*list) {|doc|
155-
let doc = fold_fn(fold, doc);
157+
let doc = fold.fold_fn(fold, doc);
156158
if fold.ctxt.have_docs {
157159
some(doc)
158160
} else {
@@ -169,3 +171,37 @@ fn should_elide_undocumented_fns() {
169171
let doc = run(srv, doc);
170172
assert vec::is_empty(*doc.topmod.fns);
171173
}
174+
175+
fn fold_const(
176+
fold: fold::fold<ctxt>,
177+
doc: doc::constdoc
178+
) -> doc::constdoc {
179+
let doc = fold::default_seq_fold_const(fold, doc);
180+
fold.ctxt.have_docs =
181+
doc.brief != none
182+
|| doc.desc != none;
183+
ret doc;
184+
}
185+
186+
fn fold_constlist(
187+
fold: fold::fold<ctxt>,
188+
list: doc::constlist
189+
) -> doc::constlist {
190+
doc::constlist(vec::filter_map(*list) {|doc|
191+
let doc = fold.fold_const(fold, doc);
192+
if fold.ctxt.have_docs {
193+
some(doc)
194+
} else {
195+
none
196+
}
197+
})
198+
}
199+
200+
#[test]
201+
fn should_elide_undocumented_consts() {
202+
let source = "const a: bool = true;";
203+
let srv = astsrv::mk_srv_from_str(source);
204+
let doc = extract::from_srv(srv, "");
205+
let doc = run(srv, doc);
206+
assert vec::is_empty(*doc.topmod.consts);
207+
}

0 commit comments

Comments
 (0)