Skip to content

Commit b3d7e05

Browse files
committed
---
yaml --- r: 7350 b: refs/heads/master c: 645035a h: refs/heads/master v: v3
1 parent 5c7238b commit b3d7e05

File tree

3 files changed

+31
-21
lines changed

3 files changed

+31
-21
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
---
2-
refs/heads/master: 447f1fd4af4214086edc4aad5e8fbd483b8f3b35
2+
refs/heads/master: 645035a7150b7af12c92e07287588e7d901ae2e9

trunk/src/rustdoc/rustdoc.rs

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -67,9 +67,16 @@ fn main(argv: [str]) {
6767
}
6868

6969
let source_file = argv[1];
70+
run(source_file);
71+
}
72+
73+
fn run(source_file: str) {
74+
7075
let default_name = source_file;
71-
let crate = parse::from_file(source_file);
72-
let doc = extract::extract(crate, default_name);
73-
let doc = tystr_pass::run(doc, crate);
76+
let srv = astsrv::mk_seq_srv_from_file(source_file);
77+
let doc = extract::from_srv(srv, default_name);
78+
let doc = run_passes(srv, doc, [
79+
tystr_pass::run
80+
]);
7481
gen::write_markdown(doc, std::io::stdout());
75-
}
82+
}

trunk/src/rustdoc/tystr_pass.rs

Lines changed: 19 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,32 @@
11
import rustc::syntax::ast;
2+
import rustc::syntax::print::pprust;
3+
import rustc::middle::ast_map;
4+
import astsrv::seq_srv;
25

36
export run;
47

58
fn run(
6-
doc: doc::cratedoc,
7-
crate: @ast::crate
9+
srv: astsrv::seq_srv,
10+
doc: doc::cratedoc
811
) -> doc::cratedoc {
912
let fold = fold::fold({
1013
fold_fn: fn~(
11-
f: fold::fold<@ast::crate>,
14+
f: fold::fold<astsrv::seq_srv>,
1215
d: doc::fndoc
1316
) -> doc::fndoc {
1417
fold_fn(f, d)
1518
}
16-
with *fold::default_seq_fold(crate)
19+
with *fold::default_seq_fold(srv)
1720
});
1821
fold.fold_crate(fold, doc)
1922
}
2023

2124
fn fold_fn(
22-
fold: fold::fold<@ast::crate>,
25+
fold: fold::fold<astsrv::seq_srv>,
2326
doc: doc::fndoc
2427
) -> doc::fndoc {
25-
import rustc::middle::ast_map;
26-
import rustc::syntax::print::pprust;
2728

28-
let crate = fold.ctxt;
29-
30-
let map = ast_map::map_crate(*crate);
29+
let srv = fold.ctxt;
3130

3231
fn add_ret_ty(
3332
doc: option<doc::retdoc>,
@@ -46,14 +45,18 @@ fn fold_fn(
4645
}
4746
}
4847

49-
~{
50-
return: alt map.get(doc.id) {
48+
let retty = srv.exec {|ctxt|
49+
alt ctxt.map.get(doc.id) {
5150
ast_map::node_item(@{
5251
node: ast::item_fn(decl, _, _), _
5352
}) {
54-
add_ret_ty(doc.return, pprust::ty_to_str(decl.output))
53+
pprust::ty_to_str(decl.output)
5554
}
5655
}
56+
};
57+
58+
~{
59+
return: add_ret_ty(doc.return, retty)
5760
with *doc
5861
}
5962
}
@@ -64,9 +67,9 @@ mod tests {
6467
#[test]
6568
fn should_add_fn_ret_types() {
6669
let source = "fn a() -> int { }";
67-
let ast = parse::from_str(source);
68-
let doc = extract::extract(ast, "");
69-
let doc = run(doc, ast);
70+
let srv = astsrv::mk_seq_srv_from_str(source);
71+
let doc = extract::from_srv(srv, "");
72+
let doc = run(srv, doc);
7073
assert option::get(doc.topmod.fns[0].return).ty == some("int");
7174
}
7275
}

0 commit comments

Comments
 (0)