Skip to content

Commit 55094a6

Browse files
committed
---
yaml --- r: 13886 b: refs/heads/try c: 9732e0d h: refs/heads/master v: v3
1 parent aa9b37f commit 55094a6

File tree

12 files changed

+71
-132
lines changed

12 files changed

+71
-132
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,5 @@
22
refs/heads/master: 61b1875c16de39c166b0f4d54bba19f9c6777d1a
33
refs/heads/snap-stage1: e33de59e47c5076a89eadeb38f4934f58a3618a6
44
refs/heads/snap-stage3: 4a81779abd786ff22d71434c6d9a5917ea4cdfff
5-
refs/heads/try: 5aa6c3a49a924c077641df6c5308586a0b0390cd
5+
refs/heads/try: 9732e0d554770291d69b4328f566b3067509a81e
66
refs/tags/release-0.1: 1f5c5126e96c79d22cb7862f75304136e204f105

branches/try/src/rustdoc/attr_pass.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -180,7 +180,7 @@ fn fold_fn_should_extract_fn_attributes() {
180180
let srv = astsrv::mk_srv_from_str(source);
181181
let doc = extract::from_srv(srv, "");
182182
let fold = fold::default_seq_fold(srv);
183-
let doc = fold_fn(fold, doc.topmod.fns[0]);
183+
let doc = fold_fn(fold, doc.topmod.fns()[0]);
184184
assert doc.desc == some("test");
185185
}
186186

@@ -190,7 +190,7 @@ fn fold_fn_should_extract_arg_attributes() {
190190
let srv = astsrv::mk_srv_from_str(source);
191191
let doc = extract::from_srv(srv, "");
192192
let fold = fold::default_seq_fold(srv);
193-
let doc = fold_fn(fold, doc.topmod.fns[0]);
193+
let doc = fold_fn(fold, doc.topmod.fns()[0]);
194194
assert doc.args[0].desc == some("b");
195195
}
196196

@@ -201,7 +201,7 @@ fn fold_fn_should_extract_return_attributes() {
201201
let doc = extract::from_srv(srv, "");
202202
let doc = tystr_pass::mk_pass()(srv, doc);
203203
let fold = fold::default_seq_fold(srv);
204-
let doc = fold_fn(fold, doc.topmod.fns[0]);
204+
let doc = fold_fn(fold, doc.topmod.fns()[0]);
205205
assert doc.return.desc == some("what");
206206
}
207207

@@ -212,7 +212,7 @@ fn fold_fn_should_preserve_sig() {
212212
let doc = extract::from_srv(srv, "");
213213
let doc = tystr_pass::mk_pass()(srv, doc);
214214
let fold = fold::default_seq_fold(srv);
215-
let doc = fold_fn(fold, doc.topmod.fns[0]);
215+
let doc = fold_fn(fold, doc.topmod.fns()[0]);
216216
assert doc.sig == some("fn a() -> int");
217217
}
218218

@@ -222,7 +222,7 @@ fn fold_fn_should_extract_failure_conditions() {
222222
let srv = astsrv::mk_srv_from_str(source);
223223
let doc = extract::from_srv(srv, "");
224224
let fold = fold::default_seq_fold(srv);
225-
let doc = fold_fn(fold, doc.topmod.fns[0]);
225+
let doc = fold_fn(fold, doc.topmod.fns()[0]);
226226
assert doc.failure == some("what");
227227
}
228228

branches/try/src/rustdoc/desc_to_brief_pass.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -112,8 +112,8 @@ fn should_promote_fn_desc() {
112112
let doc = extract::from_srv(srv, "");
113113
let doc = attr_pass::mk_pass()(srv, doc);
114114
let doc = run(srv, doc);
115-
assert doc.topmod.fns[0].brief == some("desc");
116-
assert doc.topmod.fns[0].desc == none;
115+
assert doc.topmod.fns()[0].brief == some("desc");
116+
assert doc.topmod.fns()[0].desc == none;
117117
}
118118

119119
#[test]

branches/try/src/rustdoc/doc.rs

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,7 @@ type moddoc = ~{
2121
brief: option<str>,
2222
desc: option<str>,
2323
items: [itemtag],
24-
mods: modlist,
25-
fns: fnlist
24+
mods: modlist
2625
};
2726

2827
type constdoc = ~{
@@ -80,10 +79,18 @@ type resdoc = ~{
8079

8180
// Just to break the structural recursive types
8281
enum modlist = [moddoc];
83-
enum fnlist = [fndoc];
8482

8583
impl util for moddoc {
8684

85+
fn fns() -> [fndoc] {
86+
vec::filter_map(self.items) {|itemtag|
87+
alt itemtag {
88+
fntag(fndoc) { some(fndoc) }
89+
_ { none }
90+
}
91+
}
92+
}
93+
8794
fn consts() -> [constdoc] {
8895
vec::filter_map(self.items) {|itemtag|
8996
alt itemtag {

branches/try/src/rustdoc/extract.rs

Lines changed: 10 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,11 @@ fn moddoc_from_mod(
4545
desc: none,
4646
items: vec::filter_map(module.items) {|item|
4747
alt item.node {
48+
ast::item_fn(decl, _, _) {
49+
some(doc::fntag(
50+
fndoc_from_fn(decl, item.ident, item.id)
51+
))
52+
}
4853
ast::item_const(_, _) {
4954
some(doc::consttag(
5055
constdoc_from_const(item.ident, item.id)
@@ -75,18 +80,6 @@ fn moddoc_from_mod(
7580
none
7681
}
7782
}
78-
}),
79-
fns: doc::fnlist(
80-
vec::filter_map(module.items) {|item|
81-
alt item.node {
82-
ast::item_fn(decl, _, _) {
83-
some(fndoc_from_fn(
84-
decl, item.ident, item.id))
85-
}
86-
_ {
87-
none
88-
}
89-
}
9083
})
9184
}
9285
}
@@ -116,7 +109,7 @@ fn should_extract_fn_args() {
116109
let source = "fn a(b: int, c: int) { }";
117110
let ast = parse::from_str(source);
118111
let doc = extract(ast, "");
119-
let fn_ = doc.topmod.fns[0];
112+
let fn_ = doc.topmod.fns()[0];
120113
assert fn_.args[0].name == "b";
121114
assert fn_.args[1].name == "c";
122115
}
@@ -242,7 +235,7 @@ mod tests {
242235
let doc = extract(ast, "");
243236
// FIXME #1535: These are boxed to prevent a crash
244237
assert ~doc.topmod.mods == ~doc::modlist([]);
245-
assert ~doc.topmod.fns == ~doc::fnlist([]);
238+
assert vec::is_empty(doc.topmod.fns());
246239
}
247240

248241
#[test]
@@ -278,16 +271,16 @@ mod tests {
278271
mod b { fn c() { } }";
279272
let ast = parse::from_str(source);
280273
let doc = extract(ast, "");
281-
assert doc.topmod.fns[0].name == "a";
282-
assert doc.topmod.mods[0].fns[0].name == "c";
274+
assert doc.topmod.fns()[0].name == "a";
275+
assert doc.topmod.mods[0].fns()[0].name == "c";
283276
}
284277

285278
#[test]
286279
fn extract_should_set_fn_ast_id() {
287280
let source = "fn a() { }";
288281
let ast = parse::from_str(source);
289282
let doc = extract(ast, "");
290-
assert doc.topmod.fns[0].id != 0;
283+
assert doc.topmod.fns()[0].id != 0;
291284
}
292285

293286
#[test]

branches/try/src/rustdoc/fold.rs

Lines changed: 9 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,14 @@
22
import std;
33

44
export fold;
5-
export fold_crate, fold_mod, fold_fn, fold_modlist, fold_fnlist;
5+
export fold_crate, fold_mod, fold_fn, fold_modlist;
66
export default_seq_fold;
77
export default_seq_fold_crate;
88
export default_seq_fold_mod;
99
export default_seq_fold_fn;
1010
export default_seq_fold_const;
1111
export default_seq_fold_enum;
1212
export default_seq_fold_res;
13-
export default_seq_fold_fnlist;
1413

1514
enum fold<T> = t<T>;
1615

@@ -21,7 +20,6 @@ type fold_const<T> = fn~(fold: fold<T>, doc: doc::constdoc) -> doc::constdoc;
2120
type fold_enum<T> = fn~(fold: fold<T>, doc: doc::enumdoc) -> doc::enumdoc;
2221
type fold_res<T> = fn~(fold: fold<T>, doc: doc::resdoc) -> doc::resdoc;
2322
type fold_modlist<T> = fn~(fold: fold<T>, list: doc::modlist) -> doc::modlist;
24-
type fold_fnlist<T> = fn~(fold: fold<T>, list: doc::fnlist) -> doc::fnlist;
2523

2624
type t<T> = {
2725
ctxt: T,
@@ -31,8 +29,7 @@ type t<T> = {
3129
fold_const: fold_const<T>,
3230
fold_enum: fold_enum<T>,
3331
fold_res: fold_res<T>,
34-
fold_modlist: fold_modlist<T>,
35-
fold_fnlist: fold_fnlist<T>
32+
fold_modlist: fold_modlist<T>
3633
};
3734

3835

@@ -46,8 +43,7 @@ fn mk_fold<T:copy>(
4643
fold_const: fold_const<T>,
4744
fold_enum: fold_enum<T>,
4845
fold_res: fold_res<T>,
49-
fold_modlist: fold_modlist<T>,
50-
fold_fnlist: fold_fnlist<T>
46+
fold_modlist: fold_modlist<T>
5147
) -> fold<T> {
5248
fold({
5349
ctxt: ctxt,
@@ -57,8 +53,7 @@ fn mk_fold<T:copy>(
5753
fold_const: fold_const,
5854
fold_enum: fold_enum,
5955
fold_res: fold_res,
60-
fold_modlist: fold_modlist,
61-
fold_fnlist: fold_fnlist
56+
fold_modlist: fold_modlist
6257
})
6358
}
6459

@@ -71,8 +66,7 @@ fn default_seq_fold<T:copy>(ctxt: T) -> fold<T> {
7166
{|f, d| default_seq_fold_const(f, d)},
7267
{|f, d| default_seq_fold_enum(f, d)},
7368
{|f, d| default_seq_fold_res(f, d)},
74-
{|f, d| default_seq_fold_modlist(f, d)},
75-
{|f, d| default_seq_fold_fnlist(f, d)}
69+
{|f, d| default_seq_fold_modlist(f, d)}
7670
)
7771
}
7872

@@ -92,6 +86,9 @@ fn default_seq_fold_mod<T>(
9286
~{
9387
items: vec::map(doc.items) {|itemtag|
9488
alt itemtag {
89+
doc::fntag(fndoc) {
90+
doc::fntag(fold.fold_fn(fold, fndoc))
91+
}
9592
doc::consttag(constdoc) {
9693
doc::consttag(fold.fold_const(fold, constdoc))
9794
}
@@ -103,8 +100,7 @@ fn default_seq_fold_mod<T>(
103100
}
104101
}
105102
},
106-
mods: fold.fold_modlist(fold, doc.mods),
107-
fns: fold.fold_fnlist(fold, doc.fns)
103+
mods: fold.fold_modlist(fold, doc.mods)
108104
with *doc
109105
}
110106
}
@@ -146,15 +142,6 @@ fn default_seq_fold_modlist<T>(
146142
})
147143
}
148144

149-
fn default_seq_fold_fnlist<T>(
150-
fold: fold<T>,
151-
list: doc::fnlist
152-
) -> doc::fnlist {
153-
doc::fnlist(vec::map(*list) {|doc|
154-
fold.fold_fn(fold, doc)
155-
})
156-
}
157-
158145
#[test]
159146
fn default_fold_should_produce_same_doc() {
160147
let source = "mod a { fn b() { } mod c { fn d() { } } }";

branches/try/src/rustdoc/markdown_pass.rs

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -81,16 +81,13 @@ fn write_mod_contents(
8181
write_brief(ctxt, doc.brief);
8282
write_desc(ctxt, doc.desc);
8383

84-
for fndoc in *doc.fns {
85-
write_fn(ctxt, fndoc);
86-
}
87-
8884
for moddoc in *doc.mods {
8985
write_mod(ctxt, moddoc);
9086
}
9187

9288
for itemtag in doc.items {
9389
alt itemtag {
90+
doc::fntag(fndoc) { write_fn(ctxt, fndoc) }
9491
doc::consttag(constdoc) { write_const(ctxt, constdoc) }
9592
doc::enumtag(enumdoc) { write_enum(ctxt, enumdoc) }
9693
doc::restag(resdoc) { write_res(ctxt, resdoc) }
@@ -162,10 +159,10 @@ fn should_correctly_indent_fn_signature() {
162159
let doc = test::create_doc("fn a() { }");
163160
let doc = ~{
164161
topmod: ~{
165-
fns: doc::fnlist([~{
162+
items: [doc::fntag(~{
166163
sig: some("line 1\nline 2")
167-
with *doc.topmod.fns[0]
168-
}])
164+
with *doc.topmod.fns()[0]
165+
})]
169166
with *doc.topmod
170167
}
171168
with *doc

branches/try/src/rustdoc/prune_undoc_pass.rs

Lines changed: 15 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,7 @@ fn run(
2323
fold_const: fold_const,
2424
fold_enum: fold_enum,
2525
fold_res: fold_res,
26-
fold_modlist: fold_modlist,
27-
fold_fnlist: fold_fnlist
26+
fold_modlist: fold_modlist
2827
with *fold::default_seq_fold(ctxt)
2928
});
3029
fold.fold_crate(fold, doc)
@@ -37,6 +36,14 @@ fn fold_mod(
3736
let doc = ~{
3837
items: vec::filter_map(doc.items) {|itemtag|
3938
alt itemtag {
39+
doc::fntag(fndoc) {
40+
let doc = fold.fold_fn(fold, fndoc);
41+
if fold.ctxt.have_docs {
42+
some(doc::fntag(doc))
43+
} else {
44+
none
45+
}
46+
}
4047
doc::consttag(constdoc) {
4148
let doc = fold.fold_const(fold, constdoc);
4249
if fold.ctxt.have_docs {
@@ -70,7 +77,7 @@ fn fold_mod(
7077
doc.brief != none
7178
|| doc.desc != none
7279
|| vec::is_not_empty(*doc.mods)
73-
|| vec::is_not_empty(*doc.fns);
80+
|| vec::is_not_empty(doc.items);
7481
ret doc;
7582
}
7683

@@ -115,7 +122,7 @@ fn should_elide_undocumented_arguments() {
115122
let doc = extract::from_srv(srv, "");
116123
let doc = attr_pass::mk_pass()(srv, doc);
117124
let doc = run(srv, doc);
118-
assert vec::is_empty(doc.topmod.fns[0].args);
125+
assert vec::is_empty(doc.topmod.fns()[0].args);
119126
}
120127

121128
#[test]
@@ -125,7 +132,7 @@ fn should_not_elide_fns_with_documented_arguments() {
125132
let doc = extract::from_srv(srv, "");
126133
let doc = attr_pass::mk_pass()(srv, doc);
127134
let doc = run(srv, doc);
128-
assert vec::is_not_empty(*doc.topmod.fns);
135+
assert vec::is_not_empty(doc.topmod.fns());
129136
}
130137

131138
#[test]
@@ -136,7 +143,7 @@ fn should_elide_undocumented_return_values() {
136143
let doc = tystr_pass::mk_pass()(srv, doc);
137144
let doc = attr_pass::mk_pass()(srv, doc);
138145
let doc = run(srv, doc);
139-
assert doc.topmod.fns[0].return.ty == none;
146+
assert doc.topmod.fns()[0].return.ty == none;
140147
}
141148

142149
#[test]
@@ -146,7 +153,7 @@ fn should_not_elide_fns_with_documented_failure_conditions() {
146153
let doc = extract::from_srv(srv, "");
147154
let doc = attr_pass::mk_pass()(srv, doc);
148155
let doc = run(srv, doc);
149-
assert vec::is_not_empty(*doc.topmod.fns);
156+
assert vec::is_not_empty(doc.topmod.fns());
150157
}
151158

152159
fn fold_modlist(
@@ -192,27 +199,13 @@ fn should_not_elide_undocument_mods_with_documented_fns() {
192199
assert vec::is_not_empty(*doc.topmod.mods);
193200
}
194201

195-
fn fold_fnlist(
196-
fold: fold::fold<ctxt>,
197-
list: doc::fnlist
198-
) -> doc::fnlist {
199-
doc::fnlist(vec::filter_map(*list) {|doc|
200-
let doc = fold.fold_fn(fold, doc);
201-
if fold.ctxt.have_docs {
202-
some(doc)
203-
} else {
204-
none
205-
}
206-
})
207-
}
208-
209202
#[test]
210203
fn should_elide_undocumented_fns() {
211204
let source = "fn a() { }";
212205
let srv = astsrv::mk_srv_from_str(source);
213206
let doc = extract::from_srv(srv, "");
214207
let doc = run(srv, doc);
215-
assert vec::is_empty(*doc.topmod.fns);
208+
assert vec::is_empty(doc.topmod.fns());
216209
}
217210

218211
fn fold_const(

0 commit comments

Comments
 (0)