Skip to content

Commit 521d333

Browse files
committed
---
yaml --- r: 13802 b: refs/heads/try c: 0b9f2a8 h: refs/heads/master v: v3
1 parent 7186153 commit 521d333

File tree

3 files changed

+47
-4
lines changed

3 files changed

+47
-4
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: b7b8455e540a4acca4c602f248534e264b45664d
5+
refs/heads/try: 0b9f2a82154a9a8df9691242a8be8a0a0bdbcd9e
66
refs/tags/release-0.1: 1f5c5126e96c79d22cb7862f75304136e204f105

branches/try/src/rustdoc/fold.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,8 @@ fn default_seq_fold_mod<T>(
9797
~{
9898
mods: fold.fold_modlist(fold, doc.mods),
9999
fns: fold.fold_fnlist(fold, doc.fns),
100-
consts: fold.fold_constlist(fold, doc.consts)
100+
consts: fold.fold_constlist(fold, doc.consts),
101+
enums: fold.fold_enumlist(fold, doc.enums)
101102
with *doc
102103
}
103104
}

branches/try/src/rustdoc/tystr_pass.rs

Lines changed: 44 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,8 @@ fn run(
1717
) -> doc::cratedoc {
1818
let fold = fold::fold({
1919
fold_fn: fold_fn,
20-
fold_const: fold_const
20+
fold_const: fold_const,
21+
fold_enum: fold_enum
2122
with *fold::default_seq_fold(srv)
2223
});
2324
fold.fold_crate(fold, doc)
@@ -179,4 +180,45 @@ fn should_add_const_types() {
179180
let doc = extract::from_srv(srv, "");
180181
let doc = run(srv, doc);
181182
assert doc.topmod.consts[0].ty == some("bool");
182-
}
183+
}
184+
185+
fn fold_enum(
186+
fold: fold::fold<astsrv::srv>,
187+
doc: doc::enumdoc
188+
) -> doc::enumdoc {
189+
let srv = fold.ctxt;
190+
191+
~{
192+
variants: vec::map(doc.variants) {|variant|
193+
let sig = astsrv::exec(srv) {|ctxt|
194+
alt ctxt.map.get(doc.id) {
195+
ast_map::node_item(@{
196+
node: ast::item_enum(ast_variants, _), _
197+
}) {
198+
let ast_variant = option::get(
199+
vec::find(ast_variants) {|v|
200+
v.node.name == variant.name
201+
});
202+
203+
pprust::variant_to_str(ast_variant)
204+
}
205+
}
206+
};
207+
208+
~{
209+
sig: some(sig)
210+
with *variant
211+
}
212+
}
213+
with *doc
214+
}
215+
}
216+
217+
#[test]
218+
fn should_add_variant_sigs() {
219+
let source = "enum a { b(int) }";
220+
let srv = astsrv::mk_srv_from_str(source);
221+
let doc = extract::from_srv(srv, "");
222+
let doc = run(srv, doc);
223+
assert doc.topmod.enums[0].variants[0].sig == some("b(int)");
224+
}

0 commit comments

Comments
 (0)