rustdoc: Time passes

This commit is contained in:
Brian Anderson 2012-02-27 18:07:16 -08:00
parent 7e9aa6c3c2
commit 98c31aaaff
15 changed files with 113 additions and 47 deletions

View file

@ -6,9 +6,12 @@ export item_lteq, mk_pass;
type item_lteq = fn~(doc::itemtag, doc::itemtag) -> bool;
fn mk_pass(lteq: item_lteq) -> pass {
fn~(srv: astsrv::srv, doc: doc::cratedoc) -> doc::cratedoc {
run(srv, doc, lteq)
fn mk_pass(name: str, lteq: item_lteq) -> pass {
{
name: name,
f: fn~(srv: astsrv::srv, doc: doc::cratedoc) -> doc::cratedoc {
run(srv, doc, lteq)
}
}
}
@ -44,7 +47,7 @@ fn test() {
let source = "mod z { mod y { } fn x() { } } mod w { }";
astsrv::from_str(source) {|srv|
let doc = extract::from_srv(srv, "");
let doc = mk_pass(name_lteq)(srv, doc);
let doc = mk_pass("", name_lteq).f(srv, doc);
assert doc.topmod.mods()[0].name() == "w";
assert doc.topmod.mods()[1].items[0].name() == "x";
assert doc.topmod.mods()[1].items[1].name() == "y";
@ -61,10 +64,10 @@ fn should_be_stable() {
let source = "mod a { mod b { } } mod c { mod d { } }";
astsrv::from_str(source) {|srv|
let doc = extract::from_srv(srv, "");
let doc = mk_pass(always_eq)(srv, doc);
let doc = mk_pass("", always_eq).f(srv, doc);
assert doc.topmod.mods()[0].items[0].name() == "b";
assert doc.topmod.mods()[1].items[0].name() == "d";
let doc = mk_pass(always_eq)(srv, doc);
let doc = mk_pass("", always_eq).f(srv, doc);
assert doc.topmod.mods()[0].items[0].name() == "b";
assert doc.topmod.mods()[1].items[0].name() == "d";
}