rustdoc: Time passes
This commit is contained in:
parent
7e9aa6c3c2
commit
98c31aaaff
15 changed files with 113 additions and 47 deletions
|
|
@ -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";
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue