From 749ee53c6d23ae1467568d6e0280a4f59e4e952b Mon Sep 17 00:00:00 2001 From: Patrick Walton Date: Thu, 21 Nov 2013 23:36:52 -0800 Subject: [PATCH] librustc: Make `||` lambdas not infer to `proc`s --- doc/tutorial-tasks.md | 4 +-- src/compiletest/compiletest.rs | 6 ++-- src/libextra/future.rs | 6 ++-- src/libextra/task_pool.rs | 6 ++-- src/libextra/test.rs | 14 ++++----- src/librustc/lib.rs | 4 +-- src/librustc/middle/typeck/check/mod.rs | 9 ++++-- src/librustpkg/lib.rs | 4 +-- src/librustpkg/package_source.rs | 2 +- src/librustuv/net.rs | 4 +-- src/libstd/io/net/unix.rs | 12 ++++---- src/libstd/rt/local.rs | 10 +++---- src/libstd/rt/mod.rs | 6 ++-- src/libstd/rt/sched.rs | 9 ++++-- src/libstd/rt/task.rs | 6 ++-- src/libstd/rt/test.rs | 29 +++++++++++-------- src/libstd/task/mod.rs | 10 +++---- src/libstd/task/spawn.rs | 2 +- src/test/bench/shootout-pfib.rs | 2 +- src/test/bench/task-perf-spawnalot.rs | 2 +- .../borrowck-loan-blocks-move-cc.rs | 2 +- .../compile-fail/borrowck-move-by-capture.rs | 2 +- .../borrowck-move-moved-value-into-closure.rs | 4 +-- src/test/compile-fail/kindck-nonsendable-1.rs | 6 ++-- src/test/run-fail/unwind-box-fn-unique.rs | 2 +- src/test/run-pass/block-arg-call-as.rs | 2 +- .../run-pass/borrowck-move-by-capture-ok.rs | 2 +- src/test/run-pass/cap-clause-move.rs | 4 +-- src/test/run-pass/child-outlives-parent.rs | 2 +- src/test/run-pass/cleanup-copy-mode.rs | 2 +- src/test/run-pass/clone-with-exterior.rs | 2 +- src/test/run-pass/comm.rs | 2 +- src/test/run-pass/hashmap-memory.rs | 2 +- src/test/run-pass/issue-3424.rs | 2 +- src/test/run-pass/issue-3609.rs | 12 ++++---- src/test/run-pass/ivec-tag.rs | 2 +- src/test/run-pass/newlambdas-ret-infer.rs | 2 +- src/test/run-pass/newlambdas-ret-infer2.rs | 2 +- src/test/run-pass/operator-overloading.rs | 2 +- src/test/run-pass/sendfn-spawn-with-fn-arg.rs | 4 +-- src/test/run-pass/spawn-fn.rs | 6 ++-- src/test/run-pass/spawn-types.rs | 2 +- src/test/run-pass/spawn.rs | 2 +- src/test/run-pass/spawn2.rs | 2 +- src/test/run-pass/spawning-with-debug.rs | 2 +- src/test/run-pass/swap-overlapping.rs | 2 +- src/test/run-pass/task-comm-0.rs | 2 +- src/test/run-pass/task-comm-1.rs | 2 +- src/test/run-pass/task-comm-10.rs | 2 +- src/test/run-pass/task-comm-11.rs | 2 +- src/test/run-pass/task-comm-13.rs | 2 +- src/test/run-pass/task-comm-14.rs | 2 +- src/test/run-pass/task-comm-15.rs | 2 +- src/test/run-pass/task-comm-17.rs | 2 +- src/test/run-pass/task-comm-3.rs | 2 +- src/test/run-pass/task-life-0.rs | 2 +- src/test/run-pass/task-spawn-move-and-copy.rs | 2 +- src/test/run-pass/tempfile.rs | 6 ++-- src/test/run-pass/terminate-in-initializer.rs | 4 +-- src/test/run-pass/threads.rs | 2 +- src/test/run-pass/uniq-cc-generic.rs | 2 +- src/test/run-pass/uniq-cc.rs | 2 +- src/test/run-pass/unique-send-2.rs | 2 +- src/test/run-pass/unwind-resource.rs | 2 +- 64 files changed, 139 insertions(+), 126 deletions(-) diff --git a/doc/tutorial-tasks.md b/doc/tutorial-tasks.md index 3017bc8b7ea..41cd796325c 100644 --- a/doc/tutorial-tasks.md +++ b/doc/tutorial-tasks.md @@ -76,7 +76,7 @@ fn print_message() { println("I am running in a different task!"); } spawn(print_message); // Print something more profound in a different task using a lambda expression -spawn( || println("I am also running in a different task!") ); +spawn(proc() println("I am also running in a different task!") ); // The canonical way to spawn is using `do` notation do spawn { @@ -278,7 +278,7 @@ fn fib(n: u64) -> u64 { 12586269025 } -let mut delayed_fib = extra::future::Future::spawn (|| fib(50) ); +let mut delayed_fib = extra::future::Future::spawn(proc() fib(50)); make_a_sandwich(); println!("fib(50) = {:?}", delayed_fib.get()) ~~~ diff --git a/src/compiletest/compiletest.rs b/src/compiletest/compiletest.rs index 65f733cf1de..0f39b29c60a 100644 --- a/src/compiletest/compiletest.rs +++ b/src/compiletest/compiletest.rs @@ -333,7 +333,7 @@ pub fn make_test_closure(config: &config, testfile: &Path) -> test::TestFn { let config = Cell::new((*config).clone()); // FIXME (#9639): This needs to handle non-utf8 paths let testfile = Cell::new(testfile.as_str().unwrap().to_owned()); - test::DynTestFn(|| { runtest::run(config.take(), testfile.take()) }) + test::DynTestFn(proc() { runtest::run(config.take(), testfile.take()) }) } pub fn make_metrics_test_closure(config: &config, testfile: &Path) -> test::TestFn { @@ -341,5 +341,7 @@ pub fn make_metrics_test_closure(config: &config, testfile: &Path) -> test::Test let config = Cell::new((*config).clone()); // FIXME (#9639): This needs to handle non-utf8 paths let testfile = Cell::new(testfile.as_str().unwrap().to_owned()); - test::DynMetricFn(|mm| { runtest::run_metrics(config.take(), testfile.take(), mm) }) + test::DynMetricFn(proc(mm) { + runtest::run_metrics(config.take(), testfile.take(), mm) + }) } diff --git a/src/libextra/future.rs b/src/libextra/future.rs index 8d365c5a520..5fd720c5018 100644 --- a/src/libextra/future.rs +++ b/src/libextra/future.rs @@ -161,7 +161,7 @@ mod test { #[test] fn test_from_fn() { - let mut f = Future::from_fn(|| ~"brail"); + let mut f = Future::from_fn(proc() ~"brail"); assert_eq!(f.get(), ~"brail"); } @@ -185,14 +185,14 @@ mod test { #[test] fn test_spawn() { - let mut f = Future::spawn(|| ~"bale"); + let mut f = Future::spawn(proc() ~"bale"); assert_eq!(f.get(), ~"bale"); } #[test] #[should_fail] fn test_futurefail() { - let mut f = Future::spawn(|| fail!()); + let mut f = Future::spawn(proc() fail!()); let _x: ~str = f.get(); } diff --git a/src/libextra/task_pool.rs b/src/libextra/task_pool.rs index d6eed24ef8d..bda6935643f 100644 --- a/src/libextra/task_pool.rs +++ b/src/libextra/task_pool.rs @@ -57,7 +57,7 @@ impl TaskPool { let (port, chan) = comm::stream::>(); let init_fn = init_fn_factory(); - let task_body: proc() = || { + let task_body: proc() = proc() { let local_data = init_fn(i); loop { match port.recv() { @@ -98,11 +98,11 @@ impl TaskPool { #[test] fn test_task_pool() { let f: || -> proc(uint) -> uint = || { - let g: proc(uint) -> uint = |i| i; + let g: proc(uint) -> uint = proc(i) i; g }; let mut pool = TaskPool::new(4, Some(SingleThreaded), f); 8.times(|| { - pool.execute(|i| println!("Hello from thread {}!", *i)); + pool.execute(proc(i) println!("Hello from thread {}!", *i)); }) } diff --git a/src/libextra/test.rs b/src/libextra/test.rs index c94cb196bea..16e9ea8ece4 100644 --- a/src/libextra/test.rs +++ b/src/libextra/test.rs @@ -912,7 +912,7 @@ pub fn run_test(force_ignore: bool, return; } DynTestFn(f) => run_test_inner(desc, monitor_ch, f), - StaticTestFn(f) => run_test_inner(desc, monitor_ch, || f()) + StaticTestFn(f) => run_test_inner(desc, monitor_ch, proc() f()) } } @@ -1209,7 +1209,7 @@ mod tests { ignore: true, should_fail: false }, - testfn: DynTestFn(|| f()), + testfn: DynTestFn(proc() f()), }; let (p, ch) = stream(); let ch = SharedChan::new(ch); @@ -1227,7 +1227,7 @@ mod tests { ignore: true, should_fail: false }, - testfn: DynTestFn(|| f()), + testfn: DynTestFn(proc() f()), }; let (p, ch) = stream(); let ch = SharedChan::new(ch); @@ -1245,7 +1245,7 @@ mod tests { ignore: false, should_fail: true }, - testfn: DynTestFn(|| f()), + testfn: DynTestFn(proc() f()), }; let (p, ch) = stream(); let ch = SharedChan::new(ch); @@ -1263,7 +1263,7 @@ mod tests { ignore: false, should_fail: true }, - testfn: DynTestFn(|| f()), + testfn: DynTestFn(proc() f()), }; let (p, ch) = stream(); let ch = SharedChan::new(ch); @@ -1318,7 +1318,7 @@ mod tests { ignore: true, should_fail: false, }, - testfn: DynTestFn(|| {}), + testfn: DynTestFn(proc() {}), }, TestDescAndFn { desc: TestDesc { @@ -1326,7 +1326,7 @@ mod tests { ignore: false, should_fail: false }, - testfn: DynTestFn(|| {}), + testfn: DynTestFn(proc() {}), }, ]; let filtered = filter_tests(&opts, tests); diff --git a/src/librustc/lib.rs b/src/librustc/lib.rs index b82bc38fbd9..dc1aa1f41cb 100644 --- a/src/librustc/lib.rs +++ b/src/librustc/lib.rs @@ -345,7 +345,7 @@ pub fn monitor(f: proc(@diagnostic::Emitter)) { task_builder.opts.stack_size = Some(STACK_SIZE); } - match task_builder.try(|| { + match task_builder.try(proc() { let ch = ch_capture.clone(); // The 'diagnostics emitter'. Every error, warning, etc. should // go through this function. @@ -403,6 +403,6 @@ pub fn main() { pub fn main_args(args: &[~str]) -> int { let owned_args = args.to_owned(); - monitor(|demitter| run_compiler(owned_args, demitter)); + monitor(proc(demitter) run_compiler(owned_args, demitter)); 0 } diff --git a/src/librustc/middle/typeck/check/mod.rs b/src/librustc/middle/typeck/check/mod.rs index b9d6744e53b..6bd8226258b 100644 --- a/src/librustc/middle/typeck/check/mod.rs +++ b/src/librustc/middle/typeck/check/mod.rs @@ -2905,8 +2905,13 @@ pub fn check_expr_with_unifier(fcx: @mut FnCtxt, _match::check_match(fcx, expr, discrim, *arms); } ast::ExprFnBlock(ref decl, ref body) => { - check_expr_fn(fcx, expr, None, - decl, body, Vanilla, expected); + check_expr_fn(fcx, + expr, + Some(ast::BorrowedSigil), + decl, + body, + Vanilla, + expected); } ast::ExprProc(ref decl, ref body) => { check_expr_fn(fcx, diff --git a/src/librustpkg/lib.rs b/src/librustpkg/lib.rs index f40238364f3..2308f314b14 100644 --- a/src/librustpkg/lib.rs +++ b/src/librustpkg/lib.rs @@ -474,7 +474,7 @@ impl CtxMethods for BuildContext { let psp = package_script_path.clone(); let ws = workspace.clone(); let pid = pkgid.clone(); - prep.exec(|exec| { + prep.exec(proc(exec) { let mut pscript = PkgScript::parse(subsysroot.clone(), psp.clone(), &ws, @@ -636,7 +636,7 @@ impl CtxMethods for BuildContext { let sub_target_ex = target_exec.clone(); let sub_target_lib = target_lib.clone(); let sub_build_inputs = build_inputs.to_owned(); - prep.exec(|exe_thing| { + prep.exec(proc(exe_thing) { let mut outputs = ~[]; // Declare all the *inputs* to the declared input too, as inputs for executable in subex.iter() { diff --git a/src/librustpkg/package_source.rs b/src/librustpkg/package_source.rs index 9d0812efe28..b93199e2c61 100644 --- a/src/librustpkg/package_source.rs +++ b/src/librustpkg/package_source.rs @@ -412,7 +412,7 @@ impl PkgSrc { let sub_deps = deps.clone(); let inputs = inputs_to_discover.map(|&(ref k, ref p)| (k.clone(), p.as_str().unwrap().to_owned())); - prep.exec(|exec| { + prep.exec(proc(exec) { for &(ref kind, ref p) in inputs.iter() { let pth = Path::new(p.clone()); exec.discover_input(*kind, *p, if *kind == ~"file" { diff --git a/src/librustuv/net.rs b/src/librustuv/net.rs index cad1ac6709f..8372127c671 100644 --- a/src/librustuv/net.rs +++ b/src/librustuv/net.rs @@ -1092,7 +1092,7 @@ mod test { let handle2 = Cell::new(sched2.make_handle()); let tasksFriendHandle = Cell::new(sched2.make_handle()); - let on_exit: proc(UnwindResult) = |exit_status| { + let on_exit: proc(UnwindResult) = proc(exit_status) { handle1.take().send(Shutdown); handle2.take().send(Shutdown); assert!(exit_status.is_success()); @@ -1106,7 +1106,7 @@ mod test { }) } - let test_function: proc() = || { + let test_function: proc() = proc() { let io = unsafe { local_io() }; let addr = next_test_ip4(); let maybe_socket = io.udp_bind(addr); diff --git a/src/libstd/io/net/unix.rs b/src/libstd/io/net/unix.rs index 809473d64c6..6d2deccaa4c 100644 --- a/src/libstd/io/net/unix.rs +++ b/src/libstd/io/net/unix.rs @@ -214,29 +214,29 @@ mod tests { #[test] fn smoke() { - smalltest(|mut server| { + smalltest(proc(mut server) { let mut buf = [0]; server.read(buf); assert!(buf[0] == 99); - }, |mut client| { + }, proc(mut client) { client.write([99]); }) } #[test] fn read_eof() { - smalltest(|mut server| { + smalltest(proc(mut server) { let mut buf = [0]; assert!(server.read(buf).is_none()); assert!(server.read(buf).is_none()); - }, |_client| { + }, proc(_client) { // drop the client }) } #[test] fn write_begone() { - smalltest(|mut server| { + smalltest(proc(mut server) { let buf = [0]; let mut stop = false; while !stop{ @@ -248,7 +248,7 @@ mod tests { server.write(buf); }) } - }, |_client| { + }, proc(_client) { // drop the client }) } diff --git a/src/libstd/rt/local.rs b/src/libstd/rt/local.rs index d5b0e384ca2..3e4072e617a 100644 --- a/src/libstd/rt/local.rs +++ b/src/libstd/rt/local.rs @@ -134,7 +134,7 @@ mod test { do run_in_bare_thread { local_ptr::init_tls_key(); let mut sched = ~new_test_uv_sched(); - let task = ~Task::new_root(&mut sched.stack_pool, None, || {}); + let task = ~Task::new_root(&mut sched.stack_pool, None, proc(){}); Local::put(task); let task: ~Task = Local::take(); cleanup_task(task); @@ -146,11 +146,11 @@ mod test { do run_in_bare_thread { local_ptr::init_tls_key(); let mut sched = ~new_test_uv_sched(); - let task = ~Task::new_root(&mut sched.stack_pool, None, || {}); + let task = ~Task::new_root(&mut sched.stack_pool, None, proc(){}); Local::put(task); let task: ~Task = Local::take(); cleanup_task(task); - let task = ~Task::new_root(&mut sched.stack_pool, None, || {}); + let task = ~Task::new_root(&mut sched.stack_pool, None, proc(){}); Local::put(task); let task: ~Task = Local::take(); cleanup_task(task); @@ -163,7 +163,7 @@ mod test { do run_in_bare_thread { local_ptr::init_tls_key(); let mut sched = ~new_test_uv_sched(); - let task = ~Task::new_root(&mut sched.stack_pool, None, || {}); + let task = ~Task::new_root(&mut sched.stack_pool, None, proc(){}); Local::put(task); unsafe { @@ -179,7 +179,7 @@ mod test { do run_in_bare_thread { local_ptr::init_tls_key(); let mut sched = ~new_test_uv_sched(); - let task = ~Task::new_root(&mut sched.stack_pool, None, || {}); + let task = ~Task::new_root(&mut sched.stack_pool, None, proc(){}); Local::put(task); let res = Local::borrow(|_task: &mut Task| { diff --git a/src/libstd/rt/mod.rs b/src/libstd/rt/mod.rs index ad5c69e9a0c..a8b510cbed7 100644 --- a/src/libstd/rt/mod.rs +++ b/src/libstd/rt/mod.rs @@ -340,14 +340,14 @@ fn run_(main: proc(), use_main_sched: bool) -> int { // When the main task exits, after all the tasks in the main // task tree, shut down the schedulers and set the exit code. - let handles = Cell::new(handles); - let on_exit: proc(UnwindResult) = |exit_success| { + let handles = handles; + let on_exit: proc(UnwindResult) = proc(exit_success) { unsafe { assert!(!(*exited_already.get()).swap(true, SeqCst), "the runtime already exited"); } - let mut handles = handles.take(); + let mut handles = handles; for handle in handles.mut_iter() { handle.send(Shutdown); } diff --git a/src/libstd/rt/sched.rs b/src/libstd/rt/sched.rs index ccc786242e6..9a48fc51329 100644 --- a/src/libstd/rt/sched.rs +++ b/src/libstd/rt/sched.rs @@ -979,7 +979,7 @@ mod test { assert!(Task::on_appropriate_sched()); }; - let on_exit: proc(UnwindResult) = |exit_status| { + let on_exit: proc(UnwindResult) = proc(exit_status) { rtassert!(exit_status.is_success()) }; task.death.on_exit = Some(on_exit); @@ -1193,12 +1193,15 @@ mod test { let thread = do Thread::start { let mut sched = sched.take(); - let bootstrap_task = ~Task::new_root(&mut sched.stack_pool, None, ||()); + let bootstrap_task = + ~Task::new_root(&mut sched.stack_pool, + None, + proc()()); sched.bootstrap(bootstrap_task); }; let mut stack_pool = StackPool::new(); - let task = ~Task::new_root(&mut stack_pool, None, ||()); + let task = ~Task::new_root(&mut stack_pool, None, proc()()); handle.send(TaskFromFriend(task)); handle.send(Shutdown); diff --git a/src/libstd/rt/task.rs b/src/libstd/rt/task.rs index 569d96ae388..68164eb9345 100644 --- a/src/libstd/rt/task.rs +++ b/src/libstd/rt/task.rs @@ -425,7 +425,7 @@ impl Coroutine { fn build_start_wrapper(start: proc()) -> proc() { let start_cell = Cell::new(start); - let wrapper: proc() = || { + let wrapper: proc() = proc() { // First code after swap to this new context. Run our // cleanup job. unsafe { @@ -712,10 +712,10 @@ mod test { #[test] fn unwind() { do run_in_newsched_task() { - let result = spawntask_try(||()); + let result = spawntask_try(proc()()); rtdebug!("trying first assert"); assert!(result.is_ok()); - let result = spawntask_try(|| fail!()); + let result = spawntask_try(proc() fail!()); rtdebug!("trying second assert"); assert!(result.is_err()); } diff --git a/src/libstd/rt/test.rs b/src/libstd/rt/test.rs index d87eb56a650..867d997e98d 100644 --- a/src/libstd/rt/test.rs +++ b/src/libstd/rt/test.rs @@ -83,10 +83,11 @@ pub fn run_in_uv_task_core(f: proc()) { use rt::sched::Shutdown; let mut sched = ~new_test_uv_sched(); - let exit_handle = Cell::new(sched.make_handle()); + let exit_handle = sched.make_handle(); - let on_exit: proc(UnwindResult) = |exit_status| { - exit_handle.take().send(Shutdown); + let on_exit: proc(UnwindResult) = proc(exit_status: UnwindResult) { + let mut exit_handle = exit_handle; + exit_handle.send(Shutdown); rtassert!(exit_status.is_success()); }; let mut task = ~Task::new_root(&mut sched.stack_pool, None, f); @@ -99,10 +100,11 @@ pub fn run_in_newsched_task_core(f: proc()) { use rt::sched::Shutdown; let mut sched = ~new_test_sched(); - let exit_handle = Cell::new(sched.make_handle()); + let exit_handle = sched.make_handle(); - let on_exit: proc(UnwindResult) = |exit_status| { - exit_handle.take().send(Shutdown); + let on_exit: proc(UnwindResult) = proc(exit_status: UnwindResult) { + let mut exit_handle = exit_handle; + exit_handle.send(Shutdown); rtassert!(exit_status.is_success()); }; let mut task = ~Task::new_root(&mut sched.stack_pool, None, f); @@ -244,10 +246,10 @@ pub fn run_in_mt_newsched_task(f: proc()) { scheds.push(sched); } - let handles = Cell::new(handles); - let on_exit: proc(UnwindResult) = |exit_status| { - let mut handles = handles.take(); + let handles = handles; // Work around not being able to capture mut + let on_exit: proc(UnwindResult) = proc(exit_status: UnwindResult) { // Tell schedulers to exit + let mut handles = handles; for handle in handles.mut_iter() { handle.send(Shutdown); } @@ -319,8 +321,9 @@ pub fn spawntask_random(f: proc()) { pub fn spawntask_try(f: proc()) -> Result<(),()> { let (port, chan) = oneshot(); - let chan = Cell::new(chan); - let on_exit: proc(UnwindResult) = |exit_status| chan.take().send(exit_status); + let on_exit: proc(UnwindResult) = proc(exit_status) { + chan.send(exit_status) + }; let mut new_task = Task::build_root(None, f); new_task.death.on_exit = Some(on_exit); @@ -348,7 +351,9 @@ pub fn spawntask_thread(f: proc()) -> Thread { pub fn with_test_task(blk: proc(~Task) -> ~Task) { do run_in_bare_thread { let mut sched = ~new_test_sched(); - let task = blk(~Task::new_root(&mut sched.stack_pool, None, ||{})); + let task = blk(~Task::new_root(&mut sched.stack_pool, + None, + proc() {})); cleanup_task(task); } } diff --git a/src/libstd/task/mod.rs b/src/libstd/task/mod.rs index 189f1436d42..a587515bb16 100644 --- a/src/libstd/task/mod.rs +++ b/src/libstd/task/mod.rs @@ -280,13 +280,13 @@ impl TaskBuilder { let prev_gen_body = match prev_gen_body { Some(gen) => gen, None => { - let f: proc(proc()) -> proc() = |body| body; + let f: proc(proc()) -> proc() = proc(body) body; f } }; let prev_gen_body = Cell::new(prev_gen_body); let next_gen_body = { - let f: proc(proc()) -> proc() = |body| { + let f: proc(proc()) -> proc() = proc(body) { let prev_gen_body = prev_gen_body.take(); wrapper(prev_gen_body(body)) }; @@ -551,7 +551,7 @@ fn test_add_wrapper() { let ch = Cell::new(ch); do b0.add_wrapper |body| { let ch = Cell::new(ch.take()); - let result: proc() = || { + let result: proc() = proc() { let ch = ch.take(); body(); ch.send(()); @@ -765,7 +765,7 @@ fn test_child_doesnt_ref_parent() { // valgrind-friendly. try this at home, instead..!) static generations: uint = 16; fn child_no(x: uint) -> proc() { - return || { + return proc() { if x < generations { let mut t = task(); t.unwatched(); @@ -783,7 +783,7 @@ fn test_simple_newsched_spawn() { use rt::test::run_in_uv_task; do run_in_uv_task { - spawn(||()) + spawn(proc()()) } } diff --git a/src/libstd/task/spawn.rs b/src/libstd/task/spawn.rs index 578839d4542..6c1c28c9805 100644 --- a/src/libstd/task/spawn.rs +++ b/src/libstd/task/spawn.rs @@ -180,7 +180,7 @@ pub fn spawn_raw(mut opts: TaskOpts, f: proc()) { if opts.notify_chan.is_some() { let notify_chan = opts.notify_chan.take_unwrap(); let notify_chan = Cell::new(notify_chan); - let on_exit: proc(UnwindResult) = |task_result| { + let on_exit: proc(UnwindResult) = proc(task_result) { notify_chan.take().send(task_result) }; task.death.on_exit = Some(on_exit); diff --git a/src/test/bench/shootout-pfib.rs b/src/test/bench/shootout-pfib.rs index 84426edf3bf..07e1b149932 100644 --- a/src/test/bench/shootout-pfib.rs +++ b/src/test/bench/shootout-pfib.rs @@ -46,7 +46,7 @@ fn fib(n: int) -> int { let (p, ch) = stream(); let ch = SharedChan::new(ch); - let _t = task::spawn(|| pfib(&ch, n) ); + let _t = task::spawn(proc() pfib(&ch, n) ); p.recv() } diff --git a/src/test/bench/task-perf-spawnalot.rs b/src/test/bench/task-perf-spawnalot.rs index 80217da60f9..ef749960eb9 100644 --- a/src/test/bench/task-perf-spawnalot.rs +++ b/src/test/bench/task-perf-spawnalot.rs @@ -33,5 +33,5 @@ fn main() { }; let n = from_str::(args[1]).unwrap(); let mut i = 0u; - while i < n { task::spawn(|| f(n) ); i += 1u; } + while i < n { task::spawn(proc() f(n) ); i += 1u; } } diff --git a/src/test/compile-fail/borrowck-loan-blocks-move-cc.rs b/src/test/compile-fail/borrowck-loan-blocks-move-cc.rs index 7a226b8b67c..c935c9deeac 100644 --- a/src/test/compile-fail/borrowck-loan-blocks-move-cc.rs +++ b/src/test/compile-fail/borrowck-loan-blocks-move-cc.rs @@ -24,7 +24,7 @@ fn box_imm() { let v = ~3; let _w = &v; - task::spawn(|| { + task::spawn(proc() { info!("v={}", *v); //~^ ERROR cannot move }); diff --git a/src/test/compile-fail/borrowck-move-by-capture.rs b/src/test/compile-fail/borrowck-move-by-capture.rs index aa50f9ac3fe..ac565e9bfd6 100644 --- a/src/test/compile-fail/borrowck-move-by-capture.rs +++ b/src/test/compile-fail/borrowck-move-by-capture.rs @@ -3,6 +3,6 @@ pub fn main() { // you get two error reports here. let bar = ~3; let _g = || { //~ ERROR capture of moved value - let _h: proc() -> int = || *bar; //~ ERROR capture of moved value + let _h: proc() -> int = proc() *bar; //~ ERROR capture of moved value }; } diff --git a/src/test/compile-fail/borrowck-move-moved-value-into-closure.rs b/src/test/compile-fail/borrowck-move-moved-value-into-closure.rs index b6ad3ed95a4..6e6a779840e 100644 --- a/src/test/compile-fail/borrowck-move-moved-value-into-closure.rs +++ b/src/test/compile-fail/borrowck-move-moved-value-into-closure.rs @@ -5,6 +5,6 @@ fn call_f(f: proc() -> int) -> int { fn main() { let t = ~3; - call_f(|| { *t + 1 }); - call_f(|| { *t + 1 }); //~ ERROR capture of moved value + call_f(proc() { *t + 1 }); + call_f(proc() { *t + 1 }); //~ ERROR capture of moved value } diff --git a/src/test/compile-fail/kindck-nonsendable-1.rs b/src/test/compile-fail/kindck-nonsendable-1.rs index 308eb637cd0..02c58ba5ee3 100644 --- a/src/test/compile-fail/kindck-nonsendable-1.rs +++ b/src/test/compile-fail/kindck-nonsendable-1.rs @@ -14,7 +14,7 @@ fn foo(_x: @uint) {} fn main() { let x = @3u; - let _: proc() = || foo(x); //~ ERROR does not fulfill `Send` - let _: proc() = || foo(x); //~ ERROR does not fulfill `Send` - let _: proc() = || foo(x); //~ ERROR does not fulfill `Send` + let _: proc() = proc() foo(x); //~ ERROR does not fulfill `Send` + let _: proc() = proc() foo(x); //~ ERROR does not fulfill `Send` + let _: proc() = proc() foo(x); //~ ERROR does not fulfill `Send` } diff --git a/src/test/run-fail/unwind-box-fn-unique.rs b/src/test/run-fail/unwind-box-fn-unique.rs index b28a2a6f1f0..190d3f17543 100644 --- a/src/test/run-fail/unwind-box-fn-unique.rs +++ b/src/test/run-fail/unwind-box-fn-unique.rs @@ -18,7 +18,7 @@ fn failfn() { fn main() { let y = ~0; - let x: @proc() = @(|| { + let x: @proc() = @(proc() { error!("{:?}", y.clone()); }); failfn(); diff --git a/src/test/run-pass/block-arg-call-as.rs b/src/test/run-pass/block-arg-call-as.rs index 70307e1ff04..5d5a5843a64 100644 --- a/src/test/run-pass/block-arg-call-as.rs +++ b/src/test/run-pass/block-arg-call-as.rs @@ -19,7 +19,7 @@ fn asBlock(f: || -> uint) -> uint { } pub fn main() { - let x = asSendfn(|| 22u); + let x = asSendfn(proc() 22u); assert_eq!(x, 22u); let x = asBlock(|| 22u); assert_eq!(x, 22u); diff --git a/src/test/run-pass/borrowck-move-by-capture-ok.rs b/src/test/run-pass/borrowck-move-by-capture-ok.rs index 2f186cc3fba..5e8a92cd1c2 100644 --- a/src/test/run-pass/borrowck-move-by-capture-ok.rs +++ b/src/test/run-pass/borrowck-move-by-capture-ok.rs @@ -1,5 +1,5 @@ pub fn main() { let bar = ~3; - let h: proc() -> int = || *bar; + let h: proc() -> int = proc() *bar; assert_eq!(h(), 3); } diff --git a/src/test/run-pass/cap-clause-move.rs b/src/test/run-pass/cap-clause-move.rs index c6227fdcc5e..1fa78628d8a 100644 --- a/src/test/run-pass/cap-clause-move.rs +++ b/src/test/run-pass/cap-clause-move.rs @@ -13,11 +13,11 @@ use std::ptr; pub fn main() { let x = ~3; let y = ptr::to_unsafe_ptr(&(*x)) as uint; - let snd_move: proc() -> uint = || ptr::to_unsafe_ptr(&(*x)) as uint; + let snd_move: proc() -> uint = proc() ptr::to_unsafe_ptr(&(*x)) as uint; assert_eq!(snd_move(), y); let x = ~4; let y = ptr::to_unsafe_ptr(&(*x)) as uint; - let lam_move: proc() -> uint = || ptr::to_unsafe_ptr(&(*x)) as uint; + let lam_move: proc() -> uint = proc() ptr::to_unsafe_ptr(&(*x)) as uint; assert_eq!(lam_move(), y); } diff --git a/src/test/run-pass/child-outlives-parent.rs b/src/test/run-pass/child-outlives-parent.rs index 233a4318846..a97b81a4e8b 100644 --- a/src/test/run-pass/child-outlives-parent.rs +++ b/src/test/run-pass/child-outlives-parent.rs @@ -15,5 +15,5 @@ use std::task; fn child2(_s: ~str) { } pub fn main() { - let _x = task::spawn(|| child2(~"hi")); + let _x = task::spawn(proc() child2(~"hi")); } diff --git a/src/test/run-pass/cleanup-copy-mode.rs b/src/test/run-pass/cleanup-copy-mode.rs index 3b1ccf50544..738878527bf 100644 --- a/src/test/run-pass/cleanup-copy-mode.rs +++ b/src/test/run-pass/cleanup-copy-mode.rs @@ -15,7 +15,7 @@ use std::task; fn adder(x: @int, y: @int) -> int { return *x + *y; } fn failer() -> @int { fail!(); } pub fn main() { - assert!(task::try(|| { + assert!(task::try(proc() { adder(@2, failer()); () }).is_err()); } diff --git a/src/test/run-pass/clone-with-exterior.rs b/src/test/run-pass/clone-with-exterior.rs index cceb0f353fb..6fab709543a 100644 --- a/src/test/run-pass/clone-with-exterior.rs +++ b/src/test/run-pass/clone-with-exterior.rs @@ -19,7 +19,7 @@ struct Pair { pub fn main() { let z = ~Pair { a : 10, b : 12}; - let f: proc() = || { + let f: proc() = proc() { assert_eq!(z.a, 10); assert_eq!(z.b, 12); }; diff --git a/src/test/run-pass/comm.rs b/src/test/run-pass/comm.rs index 18c6050095f..5eb3e247d67 100644 --- a/src/test/run-pass/comm.rs +++ b/src/test/run-pass/comm.rs @@ -12,7 +12,7 @@ use std::task; pub fn main() { let (p, ch) = stream(); - let _t = task::spawn(|| child(&ch) ); + let _t = task::spawn(proc() child(&ch)); let y = p.recv(); error!("received"); error!("{:?}", y); diff --git a/src/test/run-pass/hashmap-memory.rs b/src/test/run-pass/hashmap-memory.rs index 1716f882dd8..682ab844a47 100644 --- a/src/test/run-pass/hashmap-memory.rs +++ b/src/test/run-pass/hashmap-memory.rs @@ -34,7 +34,7 @@ mod map_reduce { for i in inputs.iter() { let ctrl = ctrl.clone(); let i = i.clone(); - task::spawn(|| map_task(ctrl.clone(), i.clone()) ); + task::spawn(proc() map_task(ctrl.clone(), i.clone()) ); } } diff --git a/src/test/run-pass/issue-3424.rs b/src/test/run-pass/issue-3424.rs index 0b8fcdfbd84..02aaee1d01f 100644 --- a/src/test/run-pass/issue-3424.rs +++ b/src/test/run-pass/issue-3424.rs @@ -21,7 +21,7 @@ type rsrc_loader = proc(path: &Path) -> result::Result<~str, ~str>; fn tester() { - let loader: rsrc_loader = |_path| {result::Ok(~"more blah")}; + let loader: rsrc_loader = proc(_path) {result::Ok(~"more blah")}; let path = path::Path::new("blah"); assert!(loader(&path).is_ok()); diff --git a/src/test/run-pass/issue-3609.rs b/src/test/run-pass/issue-3609.rs index b283ba67d59..ab641e51960 100644 --- a/src/test/run-pass/issue-3609.rs +++ b/src/test/run-pass/issue-3609.rs @@ -14,13 +14,11 @@ enum Msg fn foo(name: ~str, samples_chan: Chan) { do task::spawn { - let callback: SamplesFn = - |buffer| - { - for i in range(0u, buffer.len()) { - error!("{}: {}", i, buffer[i]) - } - }; + let callback: SamplesFn = proc(buffer) { + for i in range(0u, buffer.len()) { + error!("{}: {}", i, buffer[i]) + } + }; samples_chan.send(GetSamples(name.clone(), callback)); }; } diff --git a/src/test/run-pass/ivec-tag.rs b/src/test/run-pass/ivec-tag.rs index 4b76f2f3214..c7d5a2f77da 100644 --- a/src/test/run-pass/ivec-tag.rs +++ b/src/test/run-pass/ivec-tag.rs @@ -8,7 +8,7 @@ fn producer(c: &Chan<~[u8]>) { pub fn main() { let (p, ch) = stream::<~[u8]>(); - let _prod = task::spawn(|| producer(&ch) ); + let _prod = task::spawn(proc() producer(&ch) ); let _data: ~[u8] = p.recv(); } diff --git a/src/test/run-pass/newlambdas-ret-infer.rs b/src/test/run-pass/newlambdas-ret-infer.rs index e5844785a50..84d49820239 100644 --- a/src/test/run-pass/newlambdas-ret-infer.rs +++ b/src/test/run-pass/newlambdas-ret-infer.rs @@ -11,7 +11,7 @@ // Test that the lambda kind is inferred correctly as a return // expression -fn unique() -> proc() { return || (); } +fn unique() -> proc() { return proc() (); } pub fn main() { } diff --git a/src/test/run-pass/newlambdas-ret-infer2.rs b/src/test/run-pass/newlambdas-ret-infer2.rs index ccf1997498b..86ad53c0228 100644 --- a/src/test/run-pass/newlambdas-ret-infer2.rs +++ b/src/test/run-pass/newlambdas-ret-infer2.rs @@ -11,7 +11,7 @@ // Test that the lambda kind is inferred correctly as a return // expression -fn unique() -> proc() { || () } +fn unique() -> proc() { proc() () } pub fn main() { } diff --git a/src/test/run-pass/operator-overloading.rs b/src/test/run-pass/operator-overloading.rs index 5dd8ea96d37..b27da3912d3 100644 --- a/src/test/run-pass/operator-overloading.rs +++ b/src/test/run-pass/operator-overloading.rs @@ -69,6 +69,6 @@ pub fn main() { assert_eq!(q.y, !(p.y)); // Issue #1733 - let result: proc(int) = |_|(); + let result: proc(int) = proc(_)(); result(p[true]); } diff --git a/src/test/run-pass/sendfn-spawn-with-fn-arg.rs b/src/test/run-pass/sendfn-spawn-with-fn-arg.rs index 91bc8345845..963f62a20a0 100644 --- a/src/test/run-pass/sendfn-spawn-with-fn-arg.rs +++ b/src/test/run-pass/sendfn-spawn-with-fn-arg.rs @@ -19,12 +19,12 @@ fn test05_start(f: proc(int)) { fn test05() { let three = ~3; - let fn_to_send: proc(int) = |n| { + let fn_to_send: proc(int) = proc(n) { error!("{}", *three + n); // will copy x into the closure assert_eq!(*three, 3); }; let fn_to_send = Cell::new(fn_to_send); - task::spawn(|| { + task::spawn(proc() { test05_start(fn_to_send.take()); }); } diff --git a/src/test/run-pass/spawn-fn.rs b/src/test/run-pass/spawn-fn.rs index c56991e541f..8c9de64687e 100644 --- a/src/test/run-pass/spawn-fn.rs +++ b/src/test/run-pass/spawn-fn.rs @@ -16,9 +16,9 @@ fn x(s: ~str, n: int) { } pub fn main() { - task::spawn(|| x(~"hello from first spawned fn", 65) ); - task::spawn(|| x(~"hello from second spawned fn", 66) ); - task::spawn(|| x(~"hello from third spawned fn", 67) ); + task::spawn(proc() x(~"hello from first spawned fn", 65) ); + task::spawn(proc() x(~"hello from second spawned fn", 66) ); + task::spawn(proc() x(~"hello from third spawned fn", 67) ); let mut i: int = 30; while i > 0 { i = i - 1; info!("parent sleeping"); task::deschedule(); } } diff --git a/src/test/run-pass/spawn-types.rs b/src/test/run-pass/spawn-types.rs index 111e0df1d6d..18459b7a3a3 100644 --- a/src/test/run-pass/spawn-types.rs +++ b/src/test/run-pass/spawn-types.rs @@ -24,5 +24,5 @@ fn iotask(_cx: &ctx, ip: ~str) { pub fn main() { let (_p, ch) = stream::(); - task::spawn(|| iotask(&ch, ~"localhost") ); + task::spawn(proc() iotask(&ch, ~"localhost") ); } diff --git a/src/test/run-pass/spawn.rs b/src/test/run-pass/spawn.rs index 7e486a1129d..d95f032e814 100644 --- a/src/test/run-pass/spawn.rs +++ b/src/test/run-pass/spawn.rs @@ -13,7 +13,7 @@ extern mod extra; use std::task; pub fn main() { - task::spawn(|| child(10) ); + task::spawn(proc() child(10) ); } fn child(i: int) { error!("{}", i); assert!((i == 10)); } diff --git a/src/test/run-pass/spawn2.rs b/src/test/run-pass/spawn2.rs index 81c7483ffef..8530c583b16 100644 --- a/src/test/run-pass/spawn2.rs +++ b/src/test/run-pass/spawn2.rs @@ -10,7 +10,7 @@ use std::task; -pub fn main() { task::spawn(|| child((10, 20, 30, 40, 50, 60, 70, 80, 90)) ); } +pub fn main() { task::spawn(proc() child((10, 20, 30, 40, 50, 60, 70, 80, 90)) ); } fn child(args: (int, int, int, int, int, int, int, int, int)) { let (i1, i2, i3, i4, i5, i6, i7, i8, i9) = args; diff --git a/src/test/run-pass/spawning-with-debug.rs b/src/test/run-pass/spawning-with-debug.rs index f35c5ef022e..76975d15c1d 100644 --- a/src/test/run-pass/spawning-with-debug.rs +++ b/src/test/run-pass/spawning-with-debug.rs @@ -18,5 +18,5 @@ use std::task; fn main() { let mut t = task::task(); t.sched_mode(task::SingleThreaded); - t.spawn(|| ()); + t.spawn(proc() ()); } diff --git a/src/test/run-pass/swap-overlapping.rs b/src/test/run-pass/swap-overlapping.rs index 986a9a8c49c..42f3089a87a 100644 --- a/src/test/run-pass/swap-overlapping.rs +++ b/src/test/run-pass/swap-overlapping.rs @@ -18,7 +18,7 @@ pub fn main() { name: DynTestName(~"test"), should_fail: false }, - testfn: DynTestFn(|| ()), + testfn: DynTestFn(proc() ()), }; do_swap(&mut test); } diff --git a/src/test/run-pass/task-comm-0.rs b/src/test/run-pass/task-comm-0.rs index 804b03559fa..bcdb56a45fd 100644 --- a/src/test/run-pass/task-comm-0.rs +++ b/src/test/run-pass/task-comm-0.rs @@ -29,7 +29,7 @@ fn test05_start(ch : &Chan) { fn test05() { let (po, ch) = comm::stream(); - task::spawn(|| test05_start(&ch) ); + task::spawn(proc() test05_start(&ch) ); let mut value: int = po.recv(); error!("{}", value); value = po.recv(); diff --git a/src/test/run-pass/task-comm-1.rs b/src/test/run-pass/task-comm-1.rs index d202bac7089..830aecfa86c 100644 --- a/src/test/run-pass/task-comm-1.rs +++ b/src/test/run-pass/task-comm-1.rs @@ -15,6 +15,6 @@ pub fn main() { test00(); } fn start() { info!("Started / Finished task."); } fn test00() { - task::try(|| start() ); + task::try(proc() start() ); info!("Completing."); } diff --git a/src/test/run-pass/task-comm-10.rs b/src/test/run-pass/task-comm-10.rs index 9195208fb96..76948913288 100644 --- a/src/test/run-pass/task-comm-10.rs +++ b/src/test/run-pass/task-comm-10.rs @@ -31,7 +31,7 @@ fn start(c: &comm::Chan>) { pub fn main() { let (p, ch) = comm::stream(); - let _child = task::spawn(|| start(&ch) ); + let _child = task::spawn(proc() start(&ch) ); let c = p.recv(); c.send(~"A"); diff --git a/src/test/run-pass/task-comm-11.rs b/src/test/run-pass/task-comm-11.rs index 5d1a68e6cc7..e87809b2e98 100644 --- a/src/test/run-pass/task-comm-11.rs +++ b/src/test/run-pass/task-comm-11.rs @@ -22,6 +22,6 @@ fn start(c: &comm::Chan>) { pub fn main() { let (p, ch) = comm::stream(); - let _child = task::spawn(|| start(&ch) ); + let _child = task::spawn(proc() start(&ch) ); let _c = p.recv(); } diff --git a/src/test/run-pass/task-comm-13.rs b/src/test/run-pass/task-comm-13.rs index b039f01bf0c..c8234aefbe5 100644 --- a/src/test/run-pass/task-comm-13.rs +++ b/src/test/run-pass/task-comm-13.rs @@ -23,6 +23,6 @@ fn start(c: &comm::Chan, start: int, number_of_messages: int) { pub fn main() { info!("Check that we don't deadlock."); let (_p, ch) = comm::stream(); - task::try(|| start(&ch, 0, 10) ); + task::try(proc() start(&ch, 0, 10) ); info!("Joined task"); } diff --git a/src/test/run-pass/task-comm-14.rs b/src/test/run-pass/task-comm-14.rs index da9b3703a99..8ef7f85e768 100644 --- a/src/test/run-pass/task-comm-14.rs +++ b/src/test/run-pass/task-comm-14.rs @@ -22,7 +22,7 @@ pub fn main() { while (i > 0) { info!("{}", i); let ch = ch.clone(); - task::spawn({let i = i; || child(i, &ch)}); + task::spawn({let i = i; proc() child(i, &ch)}); i = i - 1; } diff --git a/src/test/run-pass/task-comm-15.rs b/src/test/run-pass/task-comm-15.rs index 394b7e48654..66b7b4db5be 100644 --- a/src/test/run-pass/task-comm-15.rs +++ b/src/test/run-pass/task-comm-15.rs @@ -29,6 +29,6 @@ pub fn main() { // the child's point of view the receiver may die. We should // drop messages on the floor in this case, and not crash! let (p, ch) = comm::stream(); - task::spawn(|| start(&ch, 10)); + task::spawn(proc() start(&ch, 10)); p.recv(); } diff --git a/src/test/run-pass/task-comm-17.rs b/src/test/run-pass/task-comm-17.rs index 47e0a710a12..4f9285d30b9 100644 --- a/src/test/run-pass/task-comm-17.rs +++ b/src/test/run-pass/task-comm-17.rs @@ -20,5 +20,5 @@ fn f() { } pub fn main() { - task::spawn(|| f() ); + task::spawn(proc() f() ); } diff --git a/src/test/run-pass/task-comm-3.rs b/src/test/run-pass/task-comm-3.rs index eb48fa1812d..030b70924f6 100644 --- a/src/test/run-pass/task-comm-3.rs +++ b/src/test/run-pass/task-comm-3.rs @@ -48,7 +48,7 @@ fn test00() { results.push(builder.future_result()); builder.spawn({ let i = i; - || test00_start(&ch, i, number_of_messages) + proc() test00_start(&ch, i, number_of_messages) }); i = i + 1; } diff --git a/src/test/run-pass/task-life-0.rs b/src/test/run-pass/task-life-0.rs index b58fe2aad58..b60e3f2a4ee 100644 --- a/src/test/run-pass/task-life-0.rs +++ b/src/test/run-pass/task-life-0.rs @@ -13,7 +13,7 @@ extern mod extra; use std::task; pub fn main() { - task::spawn(|| child(~"Hello") ); + task::spawn(proc() child(~"Hello") ); } fn child(_s: ~str) { diff --git a/src/test/run-pass/task-spawn-move-and-copy.rs b/src/test/run-pass/task-spawn-move-and-copy.rs index 92697054be3..aeca54c1fb5 100644 --- a/src/test/run-pass/task-spawn-move-and-copy.rs +++ b/src/test/run-pass/task-spawn-move-and-copy.rs @@ -17,7 +17,7 @@ pub fn main() { let x = ~1; let x_in_parent = ptr::to_unsafe_ptr(&(*x)) as uint; - task::spawn(|| { + task::spawn(proc() { let x_in_child = ptr::to_unsafe_ptr(&(*x)) as uint; ch.send(x_in_child); }); diff --git a/src/test/run-pass/tempfile.rs b/src/test/run-pass/tempfile.rs index cee2079251a..3ab0fe1c058 100644 --- a/src/test/run-pass/tempfile.rs +++ b/src/test/run-pass/tempfile.rs @@ -40,7 +40,7 @@ fn test_tempdir() { fn test_rm_tempdir() { let (rd, wr) = stream(); - let f: proc() = || { + let f: proc() = proc() { let tmp = TempDir::new("test_rm_tempdir").unwrap(); wr.send(tmp.path().clone()); fail!("fail to unwind past `tmp`"); @@ -52,7 +52,7 @@ fn test_rm_tempdir() { let tmp = TempDir::new("test_rm_tempdir").unwrap(); let path = tmp.path().clone(); let cell = Cell::new(tmp); - let f: proc() = || { + let f: proc() = proc() { let _tmp = cell.take(); fail!("fail to unwind past `tmp`"); }; @@ -61,7 +61,7 @@ fn test_rm_tempdir() { let path; { - let f: proc() -> TempDir = || { + let f: proc() -> TempDir = proc() { TempDir::new("test_rm_tempdir").unwrap() }; let tmp = task::try(f).expect("test_rm_tmdir"); diff --git a/src/test/run-pass/terminate-in-initializer.rs b/src/test/run-pass/terminate-in-initializer.rs index b630884de86..aaedb2d322b 100644 --- a/src/test/run-pass/terminate-in-initializer.rs +++ b/src/test/run-pass/terminate-in-initializer.rs @@ -25,13 +25,13 @@ fn test_ret() { let _x: @int = return; } fn test_fail() { fn f() { let _x: @int = fail!(); } - task::try(|| f() ); + task::try(proc() f() ); } fn test_fail_indirect() { fn f() -> ! { fail!(); } fn g() { let _x: @int = f(); } - task::try(|| g() ); + task::try(proc() g() ); } pub fn main() { diff --git a/src/test/run-pass/threads.rs b/src/test/run-pass/threads.rs index baa2b363a23..7df9dac219a 100644 --- a/src/test/run-pass/threads.rs +++ b/src/test/run-pass/threads.rs @@ -14,7 +14,7 @@ use std::task; pub fn main() { let mut i = 10; - while i > 0 { task::spawn({let i = i; || child(i)}); i = i - 1; } + while i > 0 { task::spawn({let i = i; proc() child(i)}); i = i - 1; } info!("main thread exiting"); } diff --git a/src/test/run-pass/uniq-cc-generic.rs b/src/test/run-pass/uniq-cc-generic.rs index ada3607beae..ebf3da60db8 100644 --- a/src/test/run-pass/uniq-cc-generic.rs +++ b/src/test/run-pass/uniq-cc-generic.rs @@ -23,7 +23,7 @@ struct Pointy { } fn make_uniq_closure(a: A) -> proc() -> uint { - let result: proc() -> uint = || ptr::to_unsafe_ptr(&a) as uint; + let result: proc() -> uint = proc() ptr::to_unsafe_ptr(&a) as uint; result } diff --git a/src/test/run-pass/uniq-cc.rs b/src/test/run-pass/uniq-cc.rs index fc58374d46d..20b5761e6bd 100644 --- a/src/test/run-pass/uniq-cc.rs +++ b/src/test/run-pass/uniq-cc.rs @@ -25,7 +25,7 @@ fn empty_pointy() -> @mut Pointy { return @mut Pointy { a : none, c : ~22, - d : || {}, + d : proc() {}, } } diff --git a/src/test/run-pass/unique-send-2.rs b/src/test/run-pass/unique-send-2.rs index e697af80dcc..f44802a9b34 100644 --- a/src/test/run-pass/unique-send-2.rs +++ b/src/test/run-pass/unique-send-2.rs @@ -22,7 +22,7 @@ pub fn main() { let mut expected = 0u; for i in range(0u, n) { let ch = ch.clone(); - task::spawn(|| child(&ch, i) ); + task::spawn(proc() child(&ch, i) ); expected += i; } diff --git a/src/test/run-pass/unwind-resource.rs b/src/test/run-pass/unwind-resource.rs index e2460ba6b04..2e01eef1c69 100644 --- a/src/test/run-pass/unwind-resource.rs +++ b/src/test/run-pass/unwind-resource.rs @@ -42,7 +42,7 @@ fn f(c: SharedChan) { pub fn main() { let (p, c) = stream(); let c = SharedChan::new(c); - task::spawn(|| f(c.clone()) ); + task::spawn(proc() f(c.clone())); error!("hiiiiiiiii"); assert!(p.recv()); }