rustdoc: Convert the astsrv constructor to a higher order fn
This will allow it to manage the destruction of the astsrv after I convert it to a task
This commit is contained in:
parent
d6095dc6b5
commit
96e3031675
17 changed files with 200 additions and 165 deletions
|
|
@ -32,26 +32,33 @@ type ctxt = {
|
|||
exp_map: resolve::exp_map
|
||||
};
|
||||
|
||||
type srv_owner<T> = fn(srv: srv) -> T;
|
||||
type ctxt_handler<T> = fn~(ctxt: ctxt) -> T;
|
||||
|
||||
type srv = {
|
||||
ctxt: ctxt
|
||||
};
|
||||
|
||||
fn from_str(source: str) -> srv {
|
||||
fn from_str<T>(source: str, owner: srv_owner<T>) -> T {
|
||||
let (sess, ignore_errors) = build_session();
|
||||
{
|
||||
|
||||
let srv = {
|
||||
ctxt: build_ctxt(sess, parse::from_str_sess(sess, source),
|
||||
ignore_errors)
|
||||
}
|
||||
};
|
||||
|
||||
owner(srv)
|
||||
}
|
||||
|
||||
fn from_file(file: str) -> srv {
|
||||
fn from_file<T>(file: str, owner: srv_owner<T>) -> T {
|
||||
let (sess, ignore_errors) = build_session();
|
||||
{
|
||||
|
||||
let srv = {
|
||||
ctxt: build_ctxt(sess, parse::from_file_sess(sess, file),
|
||||
ignore_errors)
|
||||
}
|
||||
};
|
||||
|
||||
owner(srv)
|
||||
}
|
||||
|
||||
fn build_ctxt(sess: session::session, ast: @ast::crate,
|
||||
|
|
@ -172,28 +179,31 @@ fn build_error_handlers(
|
|||
#[test]
|
||||
fn should_prune_unconfigured_items() {
|
||||
let source = "#[cfg(shut_up_and_leave_me_alone)]fn a() { }";
|
||||
let srv = from_str(source);
|
||||
exec(srv) {|ctxt|
|
||||
assert vec::is_empty(ctxt.ast.node.module.items);
|
||||
from_str(source) {|srv|
|
||||
exec(srv) {|ctxt|
|
||||
assert vec::is_empty(ctxt.ast.node.module.items);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn srv_should_build_ast_map() {
|
||||
let source = "fn a() { }";
|
||||
let srv = from_str(source);
|
||||
exec(srv) {|ctxt|
|
||||
assert ctxt.ast_map.size() != 0u
|
||||
};
|
||||
from_str(source) {|srv|
|
||||
exec(srv) {|ctxt|
|
||||
assert ctxt.ast_map.size() != 0u
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn srv_should_build_reexport_map() {
|
||||
let source = "import a::b; export b; mod a { mod b { } }";
|
||||
let srv = from_str(source);
|
||||
exec(srv) {|ctxt|
|
||||
assert ctxt.exp_map.size() != 0u
|
||||
};
|
||||
from_str(source) {|srv|
|
||||
exec(srv) {|ctxt|
|
||||
assert ctxt.exp_map.size() != 0u
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
|
@ -202,14 +212,14 @@ fn srv_should_resolve_external_crates() {
|
|||
fn f() -> std::sha1::sha1 {\
|
||||
std::sha1::mk_sha1() }";
|
||||
// Just testing that resolve doesn't crash
|
||||
from_str(source);
|
||||
from_str(source) {|_srv| }
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn srv_should_resolve_core_crate() {
|
||||
let source = "fn a() -> option { fail }";
|
||||
// Just testing that resolve doesn't crash
|
||||
from_str(source);
|
||||
from_str(source) {|_srv| }
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
|
@ -217,19 +227,19 @@ fn srv_should_resolve_non_existant_imports() {
|
|||
// We want to ignore things we can't resolve. Shouldn't
|
||||
// need to be able to find external crates to create docs.
|
||||
let source = "import wooboo; fn a() { }";
|
||||
from_str(source);
|
||||
from_str(source) {|_srv| }
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn srv_should_resolve_non_existant_uses() {
|
||||
let source = "use forble; fn a() { }";
|
||||
from_str(source);
|
||||
from_str(source) {|_srv| }
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn should_ignore_external_import_paths_that_dont_exist() {
|
||||
let source = "use forble; import forble::bippy;";
|
||||
from_str(source);
|
||||
from_str(source) {|_srv| }
|
||||
}
|
||||
|
||||
fn exec<T:send>(
|
||||
|
|
@ -242,7 +252,8 @@ fn exec<T:send>(
|
|||
#[test]
|
||||
fn srv_should_return_request_result() {
|
||||
let source = "fn a() { }";
|
||||
let srv = from_str(source);
|
||||
let result = exec(srv) {|_ctxt| 1000};
|
||||
assert result == 1000;
|
||||
from_str(source) {|srv|
|
||||
let result = exec(srv) {|_ctxt| 1000};
|
||||
assert result == 1000;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -183,23 +183,25 @@ fn should_extract_fn_arg_attributes() {
|
|||
#[test]
|
||||
fn should_extract_fn_return_attributes() {
|
||||
let source = "#[doc(return = \"what\")] fn a() -> int { }";
|
||||
let srv = astsrv::from_str(source);
|
||||
let doc = extract::from_srv(srv, "");
|
||||
let doc = tystr_pass::mk_pass()(srv, doc);
|
||||
let fold = fold::default_seq_fold(srv);
|
||||
let doc = fold_fn(fold, doc.topmod.fns()[0]);
|
||||
assert doc.return.desc == some("what");
|
||||
astsrv::from_str(source) {|srv|
|
||||
let doc = extract::from_srv(srv, "");
|
||||
let doc = tystr_pass::mk_pass()(srv, doc);
|
||||
let fold = fold::default_seq_fold(srv);
|
||||
let doc = fold_fn(fold, doc.topmod.fns()[0]);
|
||||
assert doc.return.desc == some("what");
|
||||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn should_preserve_fn_sig() {
|
||||
let source = "fn a() -> int { }";
|
||||
let srv = astsrv::from_str(source);
|
||||
let doc = extract::from_srv(srv, "");
|
||||
let doc = tystr_pass::mk_pass()(srv, doc);
|
||||
let fold = fold::default_seq_fold(srv);
|
||||
let doc = fold_fn(fold, doc.topmod.fns()[0]);
|
||||
assert doc.sig == some("fn a() -> int");
|
||||
astsrv::from_str(source) {|srv|
|
||||
let doc = extract::from_srv(srv, "");
|
||||
let doc = tystr_pass::mk_pass()(srv, doc);
|
||||
let fold = fold::default_seq_fold(srv);
|
||||
let doc = fold_fn(fold, doc.topmod.fns()[0]);
|
||||
assert doc.sig == some("fn a() -> int");
|
||||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
|
@ -448,8 +450,9 @@ fn should_extract_type_docs() {
|
|||
#[cfg(test)]
|
||||
mod test {
|
||||
fn mk_doc(source: str) -> doc::cratedoc {
|
||||
let srv = astsrv::from_str(source);
|
||||
let doc = extract::from_srv(srv, "");
|
||||
run(srv, doc)
|
||||
astsrv::from_str(source) {|srv|
|
||||
let doc = extract::from_srv(srv, "");
|
||||
run(srv, doc)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -279,9 +279,10 @@ fn should_execute_op_on_type_desc() {
|
|||
#[cfg(test)]
|
||||
mod test {
|
||||
fn mk_doc(source: str) -> doc::cratedoc {
|
||||
let srv = astsrv::from_str(source);
|
||||
let doc = extract::from_srv(srv, "");
|
||||
let doc = attr_pass::mk_pass()(srv, doc);
|
||||
mk_pass(str::trim)(srv, doc)
|
||||
astsrv::from_str(source) {|srv|
|
||||
let doc = extract::from_srv(srv, "");
|
||||
let doc = attr_pass::mk_pass()(srv, doc);
|
||||
mk_pass(str::trim)(srv, doc)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -147,10 +147,11 @@ fn should_promote_type_desc() {
|
|||
#[cfg(test)]
|
||||
mod test {
|
||||
fn mk_doc(source: str) -> doc::cratedoc {
|
||||
let srv = astsrv::from_str(source);
|
||||
let doc = extract::from_srv(srv, "");
|
||||
let doc = attr_pass::mk_pass()(srv, doc);
|
||||
run(srv, doc)
|
||||
astsrv::from_str(source) {|srv|
|
||||
let doc = extract::from_srv(srv, "");
|
||||
let doc = attr_pass::mk_pass()(srv, doc);
|
||||
run(srv, doc)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -379,8 +379,9 @@ mod test {
|
|||
#[test]
|
||||
fn extract_from_seq_srv() {
|
||||
let source = "";
|
||||
let srv = astsrv::from_str(source);
|
||||
let doc = from_srv(srv, "name");
|
||||
assert doc.topmod.name() == "name";
|
||||
astsrv::from_str(source) {|srv|
|
||||
let doc = from_srv(srv, "name");
|
||||
assert doc.topmod.name() == "name";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -790,16 +790,17 @@ mod test {
|
|||
}
|
||||
|
||||
fn create_doc_srv(source: str) -> (astsrv::srv, doc::cratedoc) {
|
||||
let srv = astsrv::from_str(source);
|
||||
let doc = extract::from_srv(srv, "");
|
||||
#debug("doc (extract): %?", doc);
|
||||
let doc = tystr_pass::mk_pass()(srv, doc);
|
||||
#debug("doc (tystr): %?", doc);
|
||||
let doc = path_pass::mk_pass()(srv, doc);
|
||||
#debug("doc (path): %?", doc);
|
||||
let doc = attr_pass::mk_pass()(srv, doc);
|
||||
#debug("doc (attr): %?", doc);
|
||||
(srv, doc)
|
||||
astsrv::from_str(source) {|srv|
|
||||
let doc = extract::from_srv(srv, "");
|
||||
#debug("doc (extract): %?", doc);
|
||||
let doc = tystr_pass::mk_pass()(srv, doc);
|
||||
#debug("doc (tystr): %?", doc);
|
||||
let doc = path_pass::mk_pass()(srv, doc);
|
||||
#debug("doc (path): %?", doc);
|
||||
let doc = attr_pass::mk_pass()(srv, doc);
|
||||
#debug("doc (attr): %?", doc);
|
||||
(srv, doc)
|
||||
}
|
||||
}
|
||||
|
||||
fn create_doc(source: str) -> doc::cratedoc {
|
||||
|
|
@ -836,11 +837,12 @@ mod test {
|
|||
|
||||
#[test]
|
||||
fn write_markdown_should_write_crate_header() {
|
||||
let srv = astsrv::from_str("");
|
||||
let doc = extract::from_srv(srv, "belch");
|
||||
let doc = attr_pass::mk_pass()(srv, doc);
|
||||
let markdown = write_markdown_str(doc);
|
||||
assert str::contains(markdown, "# Crate belch");
|
||||
astsrv::from_str("") {|srv|
|
||||
let doc = extract::from_srv(srv, "belch");
|
||||
let doc = attr_pass::mk_pass()(srv, doc);
|
||||
let markdown = write_markdown_str(doc);
|
||||
assert str::contains(markdown, "# Crate belch");
|
||||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
|
|
|||
|
|
@ -45,18 +45,20 @@ fn fold_mod(fold: fold::fold<ctxt>, doc: doc::moddoc) -> doc::moddoc {
|
|||
#[test]
|
||||
fn should_record_mod_paths() {
|
||||
let source = "mod a { mod b { mod c { } } mod d { mod e { } } }";
|
||||
let srv = astsrv::from_str(source);
|
||||
let doc = extract::from_srv(srv, "");
|
||||
let doc = run(srv, doc);
|
||||
assert doc.topmod.mods()[0].mods()[0].mods()[0].path() == ["a", "b"];
|
||||
assert doc.topmod.mods()[0].mods()[1].mods()[0].path() == ["a", "d"];
|
||||
astsrv::from_str(source) {|srv|
|
||||
let doc = extract::from_srv(srv, "");
|
||||
let doc = run(srv, doc);
|
||||
assert doc.topmod.mods()[0].mods()[0].mods()[0].path() == ["a", "b"];
|
||||
assert doc.topmod.mods()[0].mods()[1].mods()[0].path() == ["a", "d"];
|
||||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn should_record_fn_paths() {
|
||||
let source = "mod a { fn b() { } }";
|
||||
let srv = astsrv::from_str(source);
|
||||
let doc = extract::from_srv(srv, "");
|
||||
let doc = run(srv, doc);
|
||||
assert doc.topmod.mods()[0].fns()[0].path() == ["a"];
|
||||
astsrv::from_str(source) {|srv|
|
||||
let doc = extract::from_srv(srv, "");
|
||||
let doc = run(srv, doc);
|
||||
assert doc.topmod.mods()[0].fns()[0].path() == ["a"];
|
||||
}
|
||||
}
|
||||
|
|
@ -64,12 +64,13 @@ fn should_elide_undocumented_arguments() {
|
|||
#[test]
|
||||
fn should_elide_undocumented_return_values() {
|
||||
let source = "#[doc = \"fonz\"] fn a() -> int { }";
|
||||
let srv = astsrv::from_str(source);
|
||||
let doc = extract::from_srv(srv, "");
|
||||
let doc = tystr_pass::mk_pass()(srv, doc);
|
||||
let doc = attr_pass::mk_pass()(srv, doc);
|
||||
let doc = run(srv, doc);
|
||||
assert doc.topmod.fns()[0].return.ty == none;
|
||||
astsrv::from_str(source) {|srv|
|
||||
let doc = extract::from_srv(srv, "");
|
||||
let doc = tystr_pass::mk_pass()(srv, doc);
|
||||
let doc = attr_pass::mk_pass()(srv, doc);
|
||||
let doc = run(srv, doc);
|
||||
assert doc.topmod.fns()[0].return.ty == none;
|
||||
}
|
||||
}
|
||||
|
||||
fn fold_res(
|
||||
|
|
@ -154,9 +155,10 @@ fn should_elide_undocumented_impl_method_return_values() {
|
|||
#[cfg(test)]
|
||||
mod test {
|
||||
fn mk_doc(source: str) -> doc::cratedoc {
|
||||
let srv = astsrv::from_str(source);
|
||||
let doc = extract::from_srv(srv, "");
|
||||
let doc = attr_pass::mk_pass()(srv, doc);
|
||||
run(srv, doc)
|
||||
astsrv::from_str(source) {|srv|
|
||||
let doc = extract::from_srv(srv, "");
|
||||
let doc = attr_pass::mk_pass()(srv, doc);
|
||||
run(srv, doc)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -365,9 +365,10 @@ fn should_elide_undocumented_types() {
|
|||
#[cfg(test)]
|
||||
mod test {
|
||||
fn mk_doc(source: str) -> doc::cratedoc {
|
||||
let srv = astsrv::from_str(source);
|
||||
let doc = extract::from_srv(srv, "");
|
||||
let doc = attr_pass::mk_pass()(srv, doc);
|
||||
run(srv, doc)
|
||||
astsrv::from_str(source) {|srv|
|
||||
let doc = extract::from_srv(srv, "");
|
||||
let doc = attr_pass::mk_pass()(srv, doc);
|
||||
run(srv, doc)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -229,8 +229,9 @@ fn should_prune_unexported_types() {
|
|||
#[cfg(test)]
|
||||
mod test {
|
||||
fn mk_doc(source: str) -> doc::cratedoc {
|
||||
let srv = astsrv::from_str(source);
|
||||
let doc = extract::from_srv(srv, "");
|
||||
run(srv, doc)
|
||||
astsrv::from_str(source) {|srv|
|
||||
let doc = extract::from_srv(srv, "");
|
||||
run(srv, doc)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -289,14 +289,15 @@ fn should_duplicate_multiple_reexported_items() {
|
|||
import a::b; import a::c; \
|
||||
export b; export c; \
|
||||
}";
|
||||
let srv = astsrv::from_str(source);
|
||||
let doc = extract::from_srv(srv, "");
|
||||
let doc = path_pass::mk_pass()(srv, doc);
|
||||
let doc = run(srv, doc);
|
||||
// Reexports may not be in any specific order
|
||||
let doc = sort_item_name_pass::mk_pass()(srv, doc);
|
||||
assert doc.topmod.mods()[1].fns()[0].name() == "b";
|
||||
assert doc.topmod.mods()[1].fns()[1].name() == "c";
|
||||
astsrv::from_str(source) {|srv|
|
||||
let doc = extract::from_srv(srv, "");
|
||||
let doc = path_pass::mk_pass()(srv, doc);
|
||||
let doc = run(srv, doc);
|
||||
// Reexports may not be in any specific order
|
||||
let doc = sort_item_name_pass::mk_pass()(srv, doc);
|
||||
assert doc.topmod.mods()[1].fns()[0].name() == "b";
|
||||
assert doc.topmod.mods()[1].fns()[1].name() == "c";
|
||||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
|
@ -310,9 +311,10 @@ fn should_rename_items_reexported_with_different_names() {
|
|||
#[cfg(test)]
|
||||
mod test {
|
||||
fn mk_doc(source: str) -> doc::cratedoc {
|
||||
let srv = astsrv::from_str(source);
|
||||
let doc = extract::from_srv(srv, "");
|
||||
let doc = path_pass::mk_pass()(srv, doc);
|
||||
run(srv, doc)
|
||||
astsrv::from_str(source) {|srv|
|
||||
let doc = extract::from_srv(srv, "");
|
||||
let doc = path_pass::mk_pass()(srv, doc);
|
||||
run(srv, doc)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -71,11 +71,12 @@ fn test_run_passes() {
|
|||
}
|
||||
}
|
||||
let source = "";
|
||||
let srv = astsrv::from_str(source);
|
||||
let passes = [pass1, pass2];
|
||||
let doc = extract::from_srv(srv, "one");
|
||||
let doc = run_passes(srv, doc, passes);
|
||||
assert doc.topmod.name() == "onetwothree";
|
||||
astsrv::from_str(source) {|srv|
|
||||
let passes = [pass1, pass2];
|
||||
let doc = extract::from_srv(srv, "one");
|
||||
let doc = run_passes(srv, doc, passes);
|
||||
assert doc.topmod.name() == "onetwothree";
|
||||
}
|
||||
}
|
||||
|
||||
fn main(argv: [str]) {
|
||||
|
|
@ -93,22 +94,23 @@ fn main(argv: [str]) {
|
|||
fn run(source_file: str) {
|
||||
|
||||
let default_name = source_file;
|
||||
let srv = astsrv::from_file(source_file);
|
||||
let doc = extract::from_srv(srv, default_name);
|
||||
run_passes(srv, doc, [
|
||||
prune_unexported_pass::mk_pass(),
|
||||
tystr_pass::mk_pass(),
|
||||
path_pass::mk_pass(),
|
||||
attr_pass::mk_pass(),
|
||||
prune_undoc_details_pass::mk_pass(),
|
||||
// FIXME: This pass should be optional
|
||||
// prune_undoc_items_pass::mk_pass(),
|
||||
desc_to_brief_pass::mk_pass(),
|
||||
trim_pass::mk_pass(),
|
||||
unindent_pass::mk_pass(),
|
||||
reexport_pass::mk_pass(),
|
||||
sort_item_name_pass::mk_pass(),
|
||||
sort_item_type_pass::mk_pass(),
|
||||
markdown_pass::mk_pass {|f| f(std::io:: stdout()) }
|
||||
]);
|
||||
astsrv::from_file(source_file) {|srv|
|
||||
let doc = extract::from_srv(srv, default_name);
|
||||
run_passes(srv, doc, [
|
||||
prune_unexported_pass::mk_pass(),
|
||||
tystr_pass::mk_pass(),
|
||||
path_pass::mk_pass(),
|
||||
attr_pass::mk_pass(),
|
||||
prune_undoc_details_pass::mk_pass(),
|
||||
// FIXME: This pass should be optional
|
||||
// prune_undoc_items_pass::mk_pass(),
|
||||
desc_to_brief_pass::mk_pass(),
|
||||
trim_pass::mk_pass(),
|
||||
unindent_pass::mk_pass(),
|
||||
reexport_pass::mk_pass(),
|
||||
sort_item_name_pass::mk_pass(),
|
||||
sort_item_type_pass::mk_pass(),
|
||||
markdown_pass::mk_pass {|f| f(std::io:: stdout()) }
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
|
@ -11,9 +11,10 @@ fn mk_pass() -> pass {
|
|||
#[test]
|
||||
fn test() {
|
||||
let source = "mod z { } fn y() { }";
|
||||
let srv = astsrv::from_str(source);
|
||||
let doc = extract::from_srv(srv, "");
|
||||
let doc = mk_pass()(srv, doc);
|
||||
assert doc.topmod.items[0].name() == "y";
|
||||
assert doc.topmod.items[1].name() == "z";
|
||||
astsrv::from_str(source) {|srv|
|
||||
let doc = extract::from_srv(srv, "");
|
||||
let doc = mk_pass()(srv, doc);
|
||||
assert doc.topmod.items[0].name() == "y";
|
||||
assert doc.topmod.items[1].name() == "z";
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -33,15 +33,16 @@ fn test() {
|
|||
iface iiface { fn a(); } \
|
||||
impl iimpl for int { fn a() { } } \
|
||||
type itype = int;";
|
||||
let srv = astsrv::from_str(source);
|
||||
let doc = extract::from_srv(srv, "");
|
||||
let doc = mk_pass()(srv, doc);
|
||||
assert doc.topmod.items[0].name() == "iconst";
|
||||
assert doc.topmod.items[1].name() == "itype";
|
||||
assert doc.topmod.items[2].name() == "ienum";
|
||||
assert doc.topmod.items[3].name() == "ires";
|
||||
assert doc.topmod.items[4].name() == "iiface";
|
||||
assert doc.topmod.items[5].name() == "iimpl";
|
||||
assert doc.topmod.items[6].name() == "ifn";
|
||||
assert doc.topmod.items[7].name() == "imod";
|
||||
astsrv::from_str(source) {|srv|
|
||||
let doc = extract::from_srv(srv, "");
|
||||
let doc = mk_pass()(srv, doc);
|
||||
assert doc.topmod.items[0].name() == "iconst";
|
||||
assert doc.topmod.items[1].name() == "itype";
|
||||
assert doc.topmod.items[2].name() == "ienum";
|
||||
assert doc.topmod.items[3].name() == "ires";
|
||||
assert doc.topmod.items[4].name() == "iiface";
|
||||
assert doc.topmod.items[5].name() == "iimpl";
|
||||
assert doc.topmod.items[6].name() == "ifn";
|
||||
assert doc.topmod.items[7].name() == "imod";
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -42,13 +42,14 @@ fn test() {
|
|||
}
|
||||
|
||||
let source = "mod z { mod y { } fn x() { } } mod w { }";
|
||||
let srv = astsrv::from_str(source);
|
||||
let doc = extract::from_srv(srv, "");
|
||||
let doc = mk_pass(name_lteq)(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";
|
||||
assert doc.topmod.mods()[1].name() == "z";
|
||||
astsrv::from_str(source) {|srv|
|
||||
let doc = extract::from_srv(srv, "");
|
||||
let doc = mk_pass(name_lteq)(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";
|
||||
assert doc.topmod.mods()[1].name() == "z";
|
||||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
|
@ -58,12 +59,13 @@ fn should_be_stable() {
|
|||
}
|
||||
|
||||
let source = "mod a { mod b { } } mod c { mod d { } }";
|
||||
let srv = astsrv::from_str(source);
|
||||
let doc = extract::from_srv(srv, "");
|
||||
let doc = mk_pass(always_eq)(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);
|
||||
assert doc.topmod.mods()[0].items[0].name() == "b";
|
||||
assert doc.topmod.mods()[1].items[0].name() == "d";
|
||||
astsrv::from_str(source) {|srv|
|
||||
let doc = extract::from_srv(srv, "");
|
||||
let doc = mk_pass(always_eq)(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);
|
||||
assert doc.topmod.mods()[0].items[0].name() == "b";
|
||||
assert doc.topmod.mods()[1].items[0].name() == "d";
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -61,9 +61,10 @@ fn should_trim_failure_conditions() {
|
|||
#[cfg(test)]
|
||||
mod test {
|
||||
fn mk_doc(source: str) -> doc::cratedoc {
|
||||
let srv = astsrv::from_str(source);
|
||||
let doc = extract::from_srv(srv, "");
|
||||
let doc = attr_pass::mk_pass()(srv, doc);
|
||||
mk_pass()(srv, doc)
|
||||
astsrv::from_str(source) {|srv|
|
||||
let doc = extract::from_srv(srv, "");
|
||||
let doc = attr_pass::mk_pass()(srv, doc);
|
||||
mk_pass()(srv, doc)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -558,8 +558,9 @@ fn should_add_type_signatures() {
|
|||
#[cfg(test)]
|
||||
mod test {
|
||||
fn mk_doc(source: str) -> doc::cratedoc {
|
||||
let srv = astsrv::from_str(source);
|
||||
let doc = extract::from_srv(srv, "");
|
||||
run(srv, doc)
|
||||
astsrv::from_str(source) {|srv|
|
||||
let doc = extract::from_srv(srv, "");
|
||||
run(srv, doc)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue