Skip to content

Commit 0cc660e

Browse files
committed
---
yaml --- r: 11404 b: refs/heads/master c: 96e3031 h: refs/heads/master v: v3
1 parent 3ac62a4 commit 0cc660e

18 files changed

+201
-166
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
refs/heads/master: d6095dc6b5baa44c8d15db76dee185170b7be4b6
2+
refs/heads/master: 96e3031675aba427c1cff8967f2c1cbbcdb6b5ff
33
refs/heads/snap-stage1: e33de59e47c5076a89eadeb38f4934f58a3618a6
44
refs/heads/snap-stage3: 4a81779abd786ff22d71434c6d9a5917ea4cdfff
55
refs/heads/try: 2898dcc5d97da9427ac367542382b6239d9c0bbf

trunk/src/rustdoc/astsrv.rs

Lines changed: 36 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -32,26 +32,33 @@ type ctxt = {
3232
exp_map: resolve::exp_map
3333
};
3434

35+
type srv_owner<T> = fn(srv: srv) -> T;
3536
type ctxt_handler<T> = fn~(ctxt: ctxt) -> T;
3637

3738
type srv = {
3839
ctxt: ctxt
3940
};
4041

41-
fn from_str(source: str) -> srv {
42+
fn from_str<T>(source: str, owner: srv_owner<T>) -> T {
4243
let (sess, ignore_errors) = build_session();
43-
{
44+
45+
let srv = {
4446
ctxt: build_ctxt(sess, parse::from_str_sess(sess, source),
4547
ignore_errors)
46-
}
48+
};
49+
50+
owner(srv)
4751
}
4852

49-
fn from_file(file: str) -> srv {
53+
fn from_file<T>(file: str, owner: srv_owner<T>) -> T {
5054
let (sess, ignore_errors) = build_session();
51-
{
55+
56+
let srv = {
5257
ctxt: build_ctxt(sess, parse::from_file_sess(sess, file),
5358
ignore_errors)
54-
}
59+
};
60+
61+
owner(srv)
5562
}
5663

5764
fn build_ctxt(sess: session::session, ast: @ast::crate,
@@ -172,28 +179,31 @@ fn build_error_handlers(
172179
#[test]
173180
fn should_prune_unconfigured_items() {
174181
let source = "#[cfg(shut_up_and_leave_me_alone)]fn a() { }";
175-
let srv = from_str(source);
176-
exec(srv) {|ctxt|
177-
assert vec::is_empty(ctxt.ast.node.module.items);
182+
from_str(source) {|srv|
183+
exec(srv) {|ctxt|
184+
assert vec::is_empty(ctxt.ast.node.module.items);
185+
}
178186
}
179187
}
180188

181189
#[test]
182190
fn srv_should_build_ast_map() {
183191
let source = "fn a() { }";
184-
let srv = from_str(source);
185-
exec(srv) {|ctxt|
186-
assert ctxt.ast_map.size() != 0u
187-
};
192+
from_str(source) {|srv|
193+
exec(srv) {|ctxt|
194+
assert ctxt.ast_map.size() != 0u
195+
};
196+
}
188197
}
189198

190199
#[test]
191200
fn srv_should_build_reexport_map() {
192201
let source = "import a::b; export b; mod a { mod b { } }";
193-
let srv = from_str(source);
194-
exec(srv) {|ctxt|
195-
assert ctxt.exp_map.size() != 0u
196-
};
202+
from_str(source) {|srv|
203+
exec(srv) {|ctxt|
204+
assert ctxt.exp_map.size() != 0u
205+
};
206+
}
197207
}
198208

199209
#[test]
@@ -202,34 +212,34 @@ fn srv_should_resolve_external_crates() {
202212
fn f() -> std::sha1::sha1 {\
203213
std::sha1::mk_sha1() }";
204214
// Just testing that resolve doesn't crash
205-
from_str(source);
215+
from_str(source) {|_srv| }
206216
}
207217

208218
#[test]
209219
fn srv_should_resolve_core_crate() {
210220
let source = "fn a() -> option { fail }";
211221
// Just testing that resolve doesn't crash
212-
from_str(source);
222+
from_str(source) {|_srv| }
213223
}
214224

215225
#[test]
216226
fn srv_should_resolve_non_existant_imports() {
217227
// We want to ignore things we can't resolve. Shouldn't
218228
// need to be able to find external crates to create docs.
219229
let source = "import wooboo; fn a() { }";
220-
from_str(source);
230+
from_str(source) {|_srv| }
221231
}
222232

223233
#[test]
224234
fn srv_should_resolve_non_existant_uses() {
225235
let source = "use forble; fn a() { }";
226-
from_str(source);
236+
from_str(source) {|_srv| }
227237
}
228238

229239
#[test]
230240
fn should_ignore_external_import_paths_that_dont_exist() {
231241
let source = "use forble; import forble::bippy;";
232-
from_str(source);
242+
from_str(source) {|_srv| }
233243
}
234244

235245
fn exec<T:send>(
@@ -242,7 +252,8 @@ fn exec<T:send>(
242252
#[test]
243253
fn srv_should_return_request_result() {
244254
let source = "fn a() { }";
245-
let srv = from_str(source);
246-
let result = exec(srv) {|_ctxt| 1000};
247-
assert result == 1000;
255+
from_str(source) {|srv|
256+
let result = exec(srv) {|_ctxt| 1000};
257+
assert result == 1000;
258+
}
248259
}

trunk/src/rustdoc/attr_pass.rs

Lines changed: 18 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -183,23 +183,25 @@ fn should_extract_fn_arg_attributes() {
183183
#[test]
184184
fn should_extract_fn_return_attributes() {
185185
let source = "#[doc(return = \"what\")] fn a() -> int { }";
186-
let srv = astsrv::from_str(source);
187-
let doc = extract::from_srv(srv, "");
188-
let doc = tystr_pass::mk_pass()(srv, doc);
189-
let fold = fold::default_seq_fold(srv);
190-
let doc = fold_fn(fold, doc.topmod.fns()[0]);
191-
assert doc.return.desc == some("what");
186+
astsrv::from_str(source) {|srv|
187+
let doc = extract::from_srv(srv, "");
188+
let doc = tystr_pass::mk_pass()(srv, doc);
189+
let fold = fold::default_seq_fold(srv);
190+
let doc = fold_fn(fold, doc.topmod.fns()[0]);
191+
assert doc.return.desc == some("what");
192+
}
192193
}
193194

194195
#[test]
195196
fn should_preserve_fn_sig() {
196197
let source = "fn a() -> int { }";
197-
let srv = astsrv::from_str(source);
198-
let doc = extract::from_srv(srv, "");
199-
let doc = tystr_pass::mk_pass()(srv, doc);
200-
let fold = fold::default_seq_fold(srv);
201-
let doc = fold_fn(fold, doc.topmod.fns()[0]);
202-
assert doc.sig == some("fn a() -> int");
198+
astsrv::from_str(source) {|srv|
199+
let doc = extract::from_srv(srv, "");
200+
let doc = tystr_pass::mk_pass()(srv, doc);
201+
let fold = fold::default_seq_fold(srv);
202+
let doc = fold_fn(fold, doc.topmod.fns()[0]);
203+
assert doc.sig == some("fn a() -> int");
204+
}
203205
}
204206

205207
#[test]
@@ -448,8 +450,9 @@ fn should_extract_type_docs() {
448450
#[cfg(test)]
449451
mod test {
450452
fn mk_doc(source: str) -> doc::cratedoc {
451-
let srv = astsrv::from_str(source);
452-
let doc = extract::from_srv(srv, "");
453-
run(srv, doc)
453+
astsrv::from_str(source) {|srv|
454+
let doc = extract::from_srv(srv, "");
455+
run(srv, doc)
456+
}
454457
}
455458
}

trunk/src/rustdoc/desc_pass.rs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -279,9 +279,10 @@ fn should_execute_op_on_type_desc() {
279279
#[cfg(test)]
280280
mod test {
281281
fn mk_doc(source: str) -> doc::cratedoc {
282-
let srv = astsrv::from_str(source);
283-
let doc = extract::from_srv(srv, "");
284-
let doc = attr_pass::mk_pass()(srv, doc);
285-
mk_pass(str::trim)(srv, doc)
282+
astsrv::from_str(source) {|srv|
283+
let doc = extract::from_srv(srv, "");
284+
let doc = attr_pass::mk_pass()(srv, doc);
285+
mk_pass(str::trim)(srv, doc)
286+
}
286287
}
287288
}

trunk/src/rustdoc/desc_to_brief_pass.rs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -147,10 +147,11 @@ fn should_promote_type_desc() {
147147
#[cfg(test)]
148148
mod test {
149149
fn mk_doc(source: str) -> doc::cratedoc {
150-
let srv = astsrv::from_str(source);
151-
let doc = extract::from_srv(srv, "");
152-
let doc = attr_pass::mk_pass()(srv, doc);
153-
run(srv, doc)
150+
astsrv::from_str(source) {|srv|
151+
let doc = extract::from_srv(srv, "");
152+
let doc = attr_pass::mk_pass()(srv, doc);
153+
run(srv, doc)
154+
}
154155
}
155156
}
156157

trunk/src/rustdoc/extract.rs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -379,8 +379,9 @@ mod test {
379379
#[test]
380380
fn extract_from_seq_srv() {
381381
let source = "";
382-
let srv = astsrv::from_str(source);
383-
let doc = from_srv(srv, "name");
384-
assert doc.topmod.name() == "name";
382+
astsrv::from_str(source) {|srv|
383+
let doc = from_srv(srv, "name");
384+
assert doc.topmod.name() == "name";
385+
}
385386
}
386387
}

trunk/src/rustdoc/markdown_pass.rs

Lines changed: 17 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -790,16 +790,17 @@ mod test {
790790
}
791791

792792
fn create_doc_srv(source: str) -> (astsrv::srv, doc::cratedoc) {
793-
let srv = astsrv::from_str(source);
794-
let doc = extract::from_srv(srv, "");
795-
#debug("doc (extract): %?", doc);
796-
let doc = tystr_pass::mk_pass()(srv, doc);
797-
#debug("doc (tystr): %?", doc);
798-
let doc = path_pass::mk_pass()(srv, doc);
799-
#debug("doc (path): %?", doc);
800-
let doc = attr_pass::mk_pass()(srv, doc);
801-
#debug("doc (attr): %?", doc);
802-
(srv, doc)
793+
astsrv::from_str(source) {|srv|
794+
let doc = extract::from_srv(srv, "");
795+
#debug("doc (extract): %?", doc);
796+
let doc = tystr_pass::mk_pass()(srv, doc);
797+
#debug("doc (tystr): %?", doc);
798+
let doc = path_pass::mk_pass()(srv, doc);
799+
#debug("doc (path): %?", doc);
800+
let doc = attr_pass::mk_pass()(srv, doc);
801+
#debug("doc (attr): %?", doc);
802+
(srv, doc)
803+
}
803804
}
804805

805806
fn create_doc(source: str) -> doc::cratedoc {
@@ -836,11 +837,12 @@ mod test {
836837

837838
#[test]
838839
fn write_markdown_should_write_crate_header() {
839-
let srv = astsrv::from_str("");
840-
let doc = extract::from_srv(srv, "belch");
841-
let doc = attr_pass::mk_pass()(srv, doc);
842-
let markdown = write_markdown_str(doc);
843-
assert str::contains(markdown, "# Crate belch");
840+
astsrv::from_str("") {|srv|
841+
let doc = extract::from_srv(srv, "belch");
842+
let doc = attr_pass::mk_pass()(srv, doc);
843+
let markdown = write_markdown_str(doc);
844+
assert str::contains(markdown, "# Crate belch");
845+
}
844846
}
845847

846848
#[test]

trunk/src/rustdoc/path_pass.rs

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -45,18 +45,20 @@ fn fold_mod(fold: fold::fold<ctxt>, doc: doc::moddoc) -> doc::moddoc {
4545
#[test]
4646
fn should_record_mod_paths() {
4747
let source = "mod a { mod b { mod c { } } mod d { mod e { } } }";
48-
let srv = astsrv::from_str(source);
49-
let doc = extract::from_srv(srv, "");
50-
let doc = run(srv, doc);
51-
assert doc.topmod.mods()[0].mods()[0].mods()[0].path() == ["a", "b"];
52-
assert doc.topmod.mods()[0].mods()[1].mods()[0].path() == ["a", "d"];
48+
astsrv::from_str(source) {|srv|
49+
let doc = extract::from_srv(srv, "");
50+
let doc = run(srv, doc);
51+
assert doc.topmod.mods()[0].mods()[0].mods()[0].path() == ["a", "b"];
52+
assert doc.topmod.mods()[0].mods()[1].mods()[0].path() == ["a", "d"];
53+
}
5354
}
5455

5556
#[test]
5657
fn should_record_fn_paths() {
5758
let source = "mod a { fn b() { } }";
58-
let srv = astsrv::from_str(source);
59-
let doc = extract::from_srv(srv, "");
60-
let doc = run(srv, doc);
61-
assert doc.topmod.mods()[0].fns()[0].path() == ["a"];
59+
astsrv::from_str(source) {|srv|
60+
let doc = extract::from_srv(srv, "");
61+
let doc = run(srv, doc);
62+
assert doc.topmod.mods()[0].fns()[0].path() == ["a"];
63+
}
6264
}

trunk/src/rustdoc/prune_undoc_details_pass.rs

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -64,12 +64,13 @@ fn should_elide_undocumented_arguments() {
6464
#[test]
6565
fn should_elide_undocumented_return_values() {
6666
let source = "#[doc = \"fonz\"] fn a() -> int { }";
67-
let srv = astsrv::from_str(source);
68-
let doc = extract::from_srv(srv, "");
69-
let doc = tystr_pass::mk_pass()(srv, doc);
70-
let doc = attr_pass::mk_pass()(srv, doc);
71-
let doc = run(srv, doc);
72-
assert doc.topmod.fns()[0].return.ty == none;
67+
astsrv::from_str(source) {|srv|
68+
let doc = extract::from_srv(srv, "");
69+
let doc = tystr_pass::mk_pass()(srv, doc);
70+
let doc = attr_pass::mk_pass()(srv, doc);
71+
let doc = run(srv, doc);
72+
assert doc.topmod.fns()[0].return.ty == none;
73+
}
7374
}
7475

7576
fn fold_res(
@@ -154,9 +155,10 @@ fn should_elide_undocumented_impl_method_return_values() {
154155
#[cfg(test)]
155156
mod test {
156157
fn mk_doc(source: str) -> doc::cratedoc {
157-
let srv = astsrv::from_str(source);
158-
let doc = extract::from_srv(srv, "");
159-
let doc = attr_pass::mk_pass()(srv, doc);
160-
run(srv, doc)
158+
astsrv::from_str(source) {|srv|
159+
let doc = extract::from_srv(srv, "");
160+
let doc = attr_pass::mk_pass()(srv, doc);
161+
run(srv, doc)
162+
}
161163
}
162164
}

trunk/src/rustdoc/prune_undoc_items_pass.rs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -365,9 +365,10 @@ fn should_elide_undocumented_types() {
365365
#[cfg(test)]
366366
mod test {
367367
fn mk_doc(source: str) -> doc::cratedoc {
368-
let srv = astsrv::from_str(source);
369-
let doc = extract::from_srv(srv, "");
370-
let doc = attr_pass::mk_pass()(srv, doc);
371-
run(srv, doc)
368+
astsrv::from_str(source) {|srv|
369+
let doc = extract::from_srv(srv, "");
370+
let doc = attr_pass::mk_pass()(srv, doc);
371+
run(srv, doc)
372+
}
372373
}
373374
}

trunk/src/rustdoc/prune_unexported_pass.rs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -229,8 +229,9 @@ fn should_prune_unexported_types() {
229229
#[cfg(test)]
230230
mod test {
231231
fn mk_doc(source: str) -> doc::cratedoc {
232-
let srv = astsrv::from_str(source);
233-
let doc = extract::from_srv(srv, "");
234-
run(srv, doc)
232+
astsrv::from_str(source) {|srv|
233+
let doc = extract::from_srv(srv, "");
234+
run(srv, doc)
235+
}
235236
}
236237
}

0 commit comments

Comments
 (0)