Make moves explicit in rustdoc
This commit is contained in:
parent
90d06b80fd
commit
d52f988dbb
@ -57,14 +57,14 @@ fn from_file<T>(file: ~str, owner: SrvOwner<T>) -> T {
|
||||
fn run<T>(owner: SrvOwner<T>, source: ~str, +parse: Parser) -> T {
|
||||
|
||||
let srv_ = Srv({
|
||||
ch: do task::spawn_listener |po| {
|
||||
ch: do task::spawn_listener |move parse, po| {
|
||||
act(po, source, parse);
|
||||
}
|
||||
});
|
||||
|
||||
let res = owner(srv_);
|
||||
comm::send(srv_.ch, Exit);
|
||||
return res;
|
||||
move res
|
||||
}
|
||||
|
||||
fn act(po: comm::Port<Msg>, source: ~str, parse: Parser) {
|
||||
@ -97,7 +97,7 @@ fn exec<T:Send>(
|
||||
let msg = HandleRequest(fn~(move f, ctxt: Ctxt) {
|
||||
comm::send(ch, f(ctxt))
|
||||
});
|
||||
comm::send(srv.ch, msg);
|
||||
comm::send(srv.ch, move msg);
|
||||
comm::recv(po)
|
||||
}
|
||||
|
||||
|
@ -93,7 +93,7 @@ fn parse_item_attrs<T:Send>(
|
||||
srv: astsrv::Srv,
|
||||
id: doc::AstId,
|
||||
+parse_attrs: fn~(~[ast::attribute]) -> T) -> T {
|
||||
do astsrv::exec(srv) |ctxt| {
|
||||
do astsrv::exec(srv) |move parse_attrs, ctxt| {
|
||||
let attrs = match ctxt.ast_map.get(id) {
|
||||
ast_map::node_item(item, _) => item.attrs,
|
||||
ast_map::node_foreign_item(item, _, _) => item.attrs,
|
||||
|
@ -71,18 +71,18 @@ fn mk_fold<T:Copy>(
|
||||
) -> Fold<T> {
|
||||
Fold({
|
||||
ctxt: ctxt,
|
||||
fold_doc: fold_doc,
|
||||
fold_crate: fold_crate,
|
||||
fold_item: fold_item,
|
||||
fold_mod: fold_mod,
|
||||
fold_nmod: fold_nmod,
|
||||
fold_fn: fold_fn,
|
||||
fold_const: fold_const,
|
||||
fold_enum: fold_enum,
|
||||
fold_trait: fold_trait,
|
||||
fold_impl: fold_impl,
|
||||
fold_type: fold_type,
|
||||
fold_struct: fold_struct,
|
||||
fold_doc: move fold_doc,
|
||||
fold_crate: move fold_crate,
|
||||
fold_item: move fold_item,
|
||||
fold_mod: move fold_mod,
|
||||
fold_nmod: move fold_nmod,
|
||||
fold_fn: move fold_fn,
|
||||
fold_const: move fold_const,
|
||||
fold_enum: move fold_enum,
|
||||
fold_trait: move fold_trait,
|
||||
fold_impl: move fold_impl,
|
||||
fold_type: move fold_type,
|
||||
fold_struct: move fold_struct
|
||||
})
|
||||
}
|
||||
|
||||
|
@ -9,13 +9,14 @@ export mk_pass;
|
||||
export header_kind, header_name, header_text;
|
||||
|
||||
fn mk_pass(+writer_factory: WriterFactory) -> Pass {
|
||||
let f = fn~(srv: astsrv::Srv, doc: doc::Doc) -> doc::Doc {
|
||||
let f = fn~(move writer_factory,
|
||||
srv: astsrv::Srv, doc: doc::Doc) -> doc::Doc {
|
||||
run(srv, doc, copy writer_factory)
|
||||
};
|
||||
|
||||
{
|
||||
name: ~"markdown",
|
||||
f: f
|
||||
f: move f
|
||||
}
|
||||
}
|
||||
|
||||
@ -44,7 +45,7 @@ fn run(
|
||||
~"mods last", mods_last
|
||||
).f(srv, doc);
|
||||
|
||||
write_markdown(sorted_doc, writer_factory);
|
||||
write_markdown(sorted_doc, move writer_factory);
|
||||
|
||||
return doc;
|
||||
}
|
||||
@ -118,9 +119,9 @@ fn should_request_new_writer_for_each_page() {
|
||||
let (srv, doc) = test::create_doc_srv(~"mod a { }");
|
||||
// Split the document up into pages
|
||||
let doc = page_pass::mk_pass(config::DocPerMod).f(srv, doc);
|
||||
write_markdown(doc, writer_factory);
|
||||
write_markdown(doc, move writer_factory);
|
||||
// We expect two pages to have been written
|
||||
for iter::repeat(2u) {
|
||||
for iter::repeat(2) {
|
||||
comm::recv(po);
|
||||
}
|
||||
}
|
||||
@ -150,8 +151,8 @@ fn should_write_title_for_each_page() {
|
||||
let (srv, doc) = test::create_doc_srv(
|
||||
~"#[link(name = \"core\")]; mod a { }");
|
||||
let doc = page_pass::mk_pass(config::DocPerMod).f(srv, doc);
|
||||
write_markdown(doc, writer_factory);
|
||||
for iter::repeat(2u) {
|
||||
write_markdown(doc, move writer_factory);
|
||||
for iter::repeat(2) {
|
||||
let (page, markdown) = comm::recv(po);
|
||||
match page {
|
||||
doc::CratePage(_) => {
|
||||
@ -845,7 +846,7 @@ mod test {
|
||||
doc: doc::Doc
|
||||
) -> ~str {
|
||||
let (writer_factory, po) = markdown_writer::future_writer_factory();
|
||||
write_markdown(doc, writer_factory);
|
||||
write_markdown(doc, move writer_factory);
|
||||
return comm::recv(po).second();
|
||||
}
|
||||
|
||||
@ -854,7 +855,7 @@ mod test {
|
||||
doc: doc::Doc
|
||||
) -> ~str {
|
||||
let (writer_factory, po) = markdown_writer::future_writer_factory();
|
||||
let pass = mk_pass(writer_factory);
|
||||
let pass = mk_pass(move writer_factory);
|
||||
pass.f(srv, doc);
|
||||
return comm::recv(po).second();
|
||||
}
|
||||
|
@ -146,7 +146,8 @@ fn readclose(fd: libc::c_int) -> ~str {
|
||||
}
|
||||
|
||||
fn generic_writer(+process: fn~(markdown: ~str)) -> Writer {
|
||||
let ch = do task::spawn_listener |po: comm::Port<WriteInstr>| {
|
||||
let ch = do task::spawn_listener
|
||||
|move process, po: comm::Port<WriteInstr>| {
|
||||
let mut markdown = ~"";
|
||||
let mut keep_going = true;
|
||||
while keep_going {
|
||||
@ -155,7 +156,7 @@ fn generic_writer(+process: fn~(markdown: ~str)) -> Writer {
|
||||
Done => keep_going = false
|
||||
}
|
||||
}
|
||||
process(markdown);
|
||||
process(move markdown);
|
||||
};
|
||||
|
||||
fn~(+instr: WriteInstr) {
|
||||
@ -274,22 +275,22 @@ fn future_writer_factory(
|
||||
let writer_ch = comm::Chan(&writer_po);
|
||||
do task::spawn {
|
||||
let (writer, future) = future_writer();
|
||||
comm::send(writer_ch, writer);
|
||||
comm::send(writer_ch, move writer);
|
||||
let s = future::get(&future);
|
||||
comm::send(markdown_ch, (page, s));
|
||||
}
|
||||
comm::recv(writer_po)
|
||||
};
|
||||
|
||||
(writer_factory, markdown_po)
|
||||
(move writer_factory, markdown_po)
|
||||
}
|
||||
|
||||
fn future_writer() -> (Writer, future::Future<~str>) {
|
||||
let (chan, port) = pipes::stream();
|
||||
let writer = fn~(+instr: WriteInstr) {
|
||||
let writer = fn~(move chan, +instr: WriteInstr) {
|
||||
chan.send(copy instr);
|
||||
};
|
||||
let future = do future::from_fn {
|
||||
let future = do future::from_fn |move port| {
|
||||
let mut res = ~"";
|
||||
loop {
|
||||
match port.recv() {
|
||||
@ -299,5 +300,5 @@ fn future_writer() -> (Writer, future::Future<~str>) {
|
||||
}
|
||||
res
|
||||
};
|
||||
(writer, future)
|
||||
(move writer, move future)
|
||||
}
|
||||
|
@ -46,7 +46,7 @@ fn make_doc_from_pages(page_port: PagePort) -> doc::Doc {
|
||||
loop {
|
||||
let val = comm::recv(page_port);
|
||||
if val.is_some() {
|
||||
pages += ~[option::unwrap(val)];
|
||||
pages += ~[option::unwrap(move val)];
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
|
@ -87,5 +87,5 @@ fn time<T>(what: ~str, f: fn() -> T) -> T {
|
||||
let rv = f();
|
||||
let end = std::time::precise_time_s();
|
||||
info!("time: %3.3f s %s", end - start, what);
|
||||
return rv;
|
||||
move rv
|
||||
}
|
||||
|
@ -10,7 +10,7 @@ type ItemLtEq = pure fn~(v1: &doc::ItemTag, v2: &doc::ItemTag) -> bool;
|
||||
fn mk_pass(name: ~str, +lteq: ItemLtEq) -> Pass {
|
||||
{
|
||||
name: name,
|
||||
f: fn~(srv: astsrv::Srv, doc: doc::Doc) -> doc::Doc {
|
||||
f: fn~(move lteq, srv: astsrv::Srv, doc: doc::Doc) -> doc::Doc {
|
||||
run(srv, doc, lteq)
|
||||
}
|
||||
}
|
||||
|
@ -7,7 +7,7 @@ export mk_pass;
|
||||
fn mk_pass(name: ~str, +op: fn~(~str) -> ~str) -> Pass {
|
||||
{
|
||||
name: name,
|
||||
f: fn~(srv: astsrv::Srv, doc: doc::Doc) -> doc::Doc {
|
||||
f: fn~(move op, srv: astsrv::Srv, doc: doc::Doc) -> doc::Doc {
|
||||
run(srv, doc, op)
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user