Skip to content

Commit 6aa3dd8

Browse files
committed
---
yaml --- r: 7783 b: refs/heads/snap-stage3 c: e869458 h: refs/heads/master i: 7781: f876300 7779: 07e445f 7775: 29a57b4 v: v3
1 parent d726b6b commit 6aa3dd8

File tree

4 files changed

+79
-66
lines changed

4 files changed

+79
-66
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
refs/heads/master: 2898dcc5d97da9427ac367542382b6239d9c0bbf
33
refs/heads/snap-stage1: e33de59e47c5076a89eadeb38f4934f58a3618a6
4-
refs/heads/snap-stage3: e7d7f4e4b7ff73905a51c936fda9ec553a628dd9
4+
refs/heads/snap-stage3: e8694589143830f1eff367016a3bb72c124345a5
55
refs/heads/try: 2898dcc5d97da9427ac367542382b6239d9c0bbf
66
refs/tags/release-0.1: 1f5c5126e96c79d22cb7862f75304136e204f105
Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
#[doc = "Generic pass for performing an operation on all descriptions"];
2+
3+
export mk_pass;
4+
5+
fn mk_pass(op: fn~(str) -> str) -> pass {
6+
fn~(srv: astsrv::srv, doc: doc::cratedoc) -> doc::cratedoc {
7+
run(srv, doc, op)
8+
}
9+
}
10+
11+
type op = fn~(str) -> str;
12+
13+
fn run(
14+
_srv: astsrv::srv,
15+
doc: doc::cratedoc,
16+
op: op
17+
) -> doc::cratedoc {
18+
let fold = fold::fold({
19+
fold_mod: fold_mod,
20+
fold_const: fold_const,
21+
fold_fn: fold_fn
22+
with *fold::default_seq_fold(op)
23+
});
24+
fold.fold_crate(fold, doc)
25+
}
26+
27+
fn maybe_apply_op(op: op, s: option<str>) -> option<str> {
28+
option::map(s) {|s| op(s) }
29+
}
30+
31+
fn fold_mod(fold: fold::fold<op>, doc: doc::moddoc) -> doc::moddoc {
32+
let doc = fold::default_seq_fold_mod(fold, doc);
33+
34+
~{
35+
brief: maybe_apply_op(fold.ctxt, doc.brief),
36+
desc: maybe_apply_op(fold.ctxt, doc.desc)
37+
with *doc
38+
}
39+
}
40+
41+
fn fold_const(fold: fold::fold<op>, doc: doc::constdoc) -> doc::constdoc {
42+
let doc = fold::default_seq_fold_const(fold, doc);
43+
44+
~{
45+
brief: maybe_apply_op(fold.ctxt, doc.brief),
46+
desc: maybe_apply_op(fold.ctxt, doc.desc)
47+
with *doc
48+
}
49+
}
50+
51+
fn fold_fn(fold: fold::fold<op>, doc: doc::fndoc) -> doc::fndoc {
52+
let doc = fold::default_seq_fold_fn(fold, doc);
53+
54+
~{
55+
brief: maybe_apply_op(fold.ctxt, doc.brief),
56+
desc: maybe_apply_op(fold.ctxt, doc.desc),
57+
args: vec::map(doc.args) {|doc|
58+
~{
59+
desc: maybe_apply_op(fold.ctxt, doc.desc)
60+
with *doc
61+
}
62+
},
63+
return: {
64+
desc: maybe_apply_op(fold.ctxt, doc.return.desc)
65+
with doc.return
66+
},
67+
failure: maybe_apply_op(fold.ctxt, doc.failure)
68+
with *doc
69+
}
70+
}

branches/snap-stage3/src/rustdoc/rustdoc.rc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ mod tystr_pass;
2424
mod prune_undoc_pass;
2525
mod prune_unexported_pass;
2626
mod desc_to_brief_pass;
27+
mod desc_pass;
2728
mod trim_pass;
2829
mod astsrv;
2930
mod demo;

branches/snap-stage3/src/rustdoc/trim_pass.rs

Lines changed: 7 additions & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -10,34 +10,7 @@ is interpreted as the brief description.
1010
export mk_pass;
1111

1212
fn mk_pass() -> pass {
13-
run
14-
}
15-
16-
fn run(
17-
_srv: astsrv::srv,
18-
doc: doc::cratedoc
19-
) -> doc::cratedoc {
20-
let fold = fold::fold({
21-
fold_mod: fold_mod,
22-
fold_const: fold_const,
23-
fold_fn: fold_fn
24-
with *fold::default_seq_fold(())
25-
});
26-
fold.fold_crate(fold, doc)
27-
}
28-
29-
fn trimopt(s: option<str>) -> option<str> {
30-
option::map(s, {|s| str::trim(s) })
31-
}
32-
33-
fn fold_mod(fold: fold::fold<()>, doc: doc::moddoc) -> doc::moddoc {
34-
let doc = fold::default_seq_fold_mod(fold, doc);
35-
36-
~{
37-
brief: trimopt(doc.brief),
38-
desc: trimopt(doc.desc)
39-
with *doc
40-
}
13+
desc_pass::mk_pass(str::trim)
4114
}
4215

4316
#[test]
@@ -48,21 +21,11 @@ fn should_trim_mod() {
4821
let srv = astsrv::mk_srv_from_str(source);
4922
let doc = extract::from_srv(srv, "");
5023
let doc = attr_pass::mk_pass()(srv, doc);
51-
let doc = run(srv, doc);
24+
let doc = mk_pass()(srv, doc);
5225
assert doc.topmod.mods[0].brief == some("brief");
5326
assert doc.topmod.mods[0].desc == some("desc");
5427
}
5528

56-
fn fold_const(fold: fold::fold<()>, doc: doc::constdoc) -> doc::constdoc {
57-
let doc = fold::default_seq_fold_const(fold, doc);
58-
59-
~{
60-
brief: trimopt(doc.brief),
61-
desc: trimopt(doc.desc)
62-
with *doc
63-
}
64-
}
65-
6629
#[test]
6730
fn should_trim_const() {
6831
let source = "#[doc(brief = \"\nbrief\n\", \
@@ -71,32 +34,11 @@ fn should_trim_const() {
7134
let srv = astsrv::mk_srv_from_str(source);
7235
let doc = extract::from_srv(srv, "");
7336
let doc = attr_pass::mk_pass()(srv, doc);
74-
let doc = run(srv, doc);
37+
let doc = mk_pass()(srv, doc);
7538
assert doc.topmod.consts[0].brief == some("brief");
7639
assert doc.topmod.consts[0].desc == some("desc");
7740
}
7841

79-
fn fold_fn(fold: fold::fold<()>, doc: doc::fndoc) -> doc::fndoc {
80-
let doc = fold::default_seq_fold_fn(fold, doc);
81-
82-
~{
83-
brief: trimopt(doc.brief),
84-
desc: trimopt(doc.desc),
85-
args: vec::map(doc.args) {|doc|
86-
~{
87-
desc: trimopt(doc.desc)
88-
with *doc
89-
}
90-
},
91-
return: {
92-
desc: trimopt(doc.return.desc)
93-
with doc.return
94-
},
95-
failure: trimopt(doc.failure)
96-
with *doc
97-
}
98-
}
99-
10042
#[test]
10143
fn should_trim_fn() {
10244
let source = "#[doc(brief = \"\nbrief\n\", \
@@ -105,7 +47,7 @@ fn should_trim_fn() {
10547
let srv = astsrv::mk_srv_from_str(source);
10648
let doc = extract::from_srv(srv, "");
10749
let doc = attr_pass::mk_pass()(srv, doc);
108-
let doc = run(srv, doc);
50+
let doc = mk_pass()(srv, doc);
10951
assert doc.topmod.fns[0].brief == some("brief");
11052
assert doc.topmod.fns[0].desc == some("desc");
11153
}
@@ -116,7 +58,7 @@ fn should_trim_args() {
11658
let srv = astsrv::mk_srv_from_str(source);
11759
let doc = extract::from_srv(srv, "");
11860
let doc = attr_pass::mk_pass()(srv, doc);
119-
let doc = run(srv, doc);
61+
let doc = mk_pass()(srv, doc);
12062
assert doc.topmod.fns[0].args[0].desc == some("a");
12163
}
12264

@@ -126,7 +68,7 @@ fn should_trim_ret() {
12668
let srv = astsrv::mk_srv_from_str(source);
12769
let doc = extract::from_srv(srv, "");
12870
let doc = attr_pass::mk_pass()(srv, doc);
129-
let doc = run(srv, doc);
71+
let doc = mk_pass()(srv, doc);
13072
assert doc.topmod.fns[0].return.desc == some("a");
13173
}
13274

@@ -136,6 +78,6 @@ fn should_trim_failure_conditions() {
13678
let srv = astsrv::mk_srv_from_str(source);
13779
let doc = extract::from_srv(srv, "");
13880
let doc = attr_pass::mk_pass()(srv, doc);
139-
let doc = run(srv, doc);
81+
let doc = mk_pass()(srv, doc);
14082
assert doc.topmod.fns[0].failure == some("a");
14183
}

0 commit comments

Comments
 (0)