Skip to content

Commit a86cec5

Browse files
committed
---
yaml --- r: 13800 b: refs/heads/try c: 1586cce h: refs/heads/master v: v3
1 parent d5922f5 commit a86cec5

File tree

2 files changed

+43
-8
lines changed

2 files changed

+43
-8
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: e946792a78590df3972fc4a9827d5e94d333d055
5+
refs/heads/try: 1586cce0ea1082f4716b50520ed9cb40941f7fad
66
refs/tags/release-0.1: 1f5c5126e96c79d22cb7862f75304136e204f105

branches/try/src/rustdoc/fold.rs

Lines changed: 42 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,22 +16,25 @@ type fold_crate<T> = fn~(fold: fold<T>, doc: doc::cratedoc) -> doc::cratedoc;
1616
type fold_mod<T> = fn~(fold: fold<T>, doc: doc::moddoc) -> doc::moddoc;
1717
type fold_fn<T> = fn~(fold: fold<T>, doc: doc::fndoc) -> doc::fndoc;
1818
type fold_const<T> = fn~(fold: fold<T>, doc: doc::constdoc) -> doc::constdoc;
19+
type fold_enum<T> = fn~(fold: fold<T>, doc: doc::enumdoc) -> doc::enumdoc;
1920
type fold_modlist<T> = fn~(fold: fold<T>, list: doc::modlist) -> doc::modlist;
2021
type fold_fnlist<T> = fn~(fold: fold<T>, list: doc::fnlist) -> doc::fnlist;
2122
type fold_constlist<T> = fn~(
22-
fold: fold<T>,
23-
list: doc::constlist
24-
) -> doc::constlist;
23+
fold: fold<T>, list: doc::constlist) -> doc::constlist;
24+
type fold_enumlist<T> = fn~(
25+
fold: fold<T>, list: doc::enumlist) -> doc::enumlist;
2526

2627
type t<T> = {
2728
ctxt: T,
2829
fold_crate: fold_crate<T>,
2930
fold_mod: fold_mod<T>,
3031
fold_fn: fold_fn<T>,
3132
fold_const: fold_const<T>,
33+
fold_enum: fold_enum<T>,
3234
fold_modlist: fold_modlist<T>,
3335
fold_fnlist: fold_fnlist<T>,
34-
fold_constlist: fold_constlist<T>
36+
fold_constlist: fold_constlist<T>,
37+
fold_enumlist: fold_enumlist<T>
3538
};
3639

3740

@@ -43,19 +46,23 @@ fn mk_fold<T:copy>(
4346
fold_mod: fold_mod<T>,
4447
fold_fn: fold_fn<T>,
4548
fold_const: fold_const<T>,
49+
fold_enum: fold_enum<T>,
4650
fold_modlist: fold_modlist<T>,
4751
fold_fnlist: fold_fnlist<T>,
48-
fold_constlist: fold_constlist<T>
52+
fold_constlist: fold_constlist<T>,
53+
fold_enumlist: fold_enumlist<T>
4954
) -> fold<T> {
5055
fold({
5156
ctxt: ctxt,
5257
fold_crate: fold_crate,
5358
fold_mod: fold_mod,
5459
fold_fn: fold_fn,
5560
fold_const: fold_const,
61+
fold_enum: fold_enum,
5662
fold_modlist: fold_modlist,
5763
fold_fnlist: fold_fnlist,
58-
fold_constlist: fold_constlist
64+
fold_constlist: fold_constlist,
65+
fold_enumlist: fold_enumlist
5966
})
6067
}
6168

@@ -66,9 +73,11 @@ fn default_seq_fold<T:copy>(ctxt: T) -> fold<T> {
6673
{|f, d| default_seq_fold_mod(f, d)},
6774
{|f, d| default_seq_fold_fn(f, d)},
6875
{|f, d| default_seq_fold_const(f, d)},
76+
{|f, d| default_seq_fold_enum(f, d)},
6977
{|f, d| default_seq_fold_modlist(f, d)},
7078
{|f, d| default_seq_fold_fnlist(f, d)},
71-
{|f, d| default_seq_fold_constlist(f, d)}
79+
{|f, d| default_seq_fold_constlist(f, d)},
80+
{|f, d| default_seq_fold_enumlist(f, d)}
7281
)
7382
}
7483

@@ -107,6 +116,13 @@ fn default_seq_fold_const<T>(
107116
doc
108117
}
109118

119+
fn default_seq_fold_enum<T>(
120+
_fold: fold<T>,
121+
doc: doc::enumdoc
122+
) -> doc::enumdoc {
123+
doc
124+
}
125+
110126
fn default_seq_fold_modlist<T>(
111127
fold: fold<T>,
112128
list: doc::modlist
@@ -134,6 +150,15 @@ fn default_seq_fold_constlist<T>(
134150
})
135151
}
136152

153+
fn default_seq_fold_enumlist<T>(
154+
fold: fold<T>,
155+
list: doc::enumlist
156+
) -> doc::enumlist {
157+
doc::enumlist(vec::map(*list) {|doc|
158+
fold.fold_enum(fold, doc)
159+
})
160+
}
161+
137162
#[test]
138163
fn default_fold_should_produce_same_doc() {
139164
let source = "mod a { fn b() { } mod c { fn d() { } } }";
@@ -152,4 +177,14 @@ fn default_fold_should_produce_same_consts() {
152177
let fld = default_seq_fold(());
153178
let folded = fld.fold_crate(fld, doc);
154179
assert doc == folded;
180+
}
181+
182+
#[test]
183+
fn default_fold_should_produce_same_enums() {
184+
let source = "enum a { b }";
185+
let ast = parse::from_str(source);
186+
let doc = extract::extract(ast, "");
187+
let fld = default_seq_fold(());
188+
let folded = fld.fold_crate(fld, doc);
189+
assert doc == folded;
155190
}

0 commit comments

Comments
 (0)