diff --git a/src/libstd/c_vec.rs b/src/libstd/c_vec.rs index 5af596c1f84e..30538a129425 100644 --- a/src/libstd/c_vec.rs +++ b/src/libstd/c_vec.rs @@ -53,7 +53,7 @@ pub struct CVec { } struct DtorRes { - dtor: Option, + dtor: Option<@fn()>, } impl Drop for DtorRes { @@ -65,7 +65,7 @@ impl Drop for DtorRes { } } -fn DtorRes(dtor: Option) -> DtorRes { +fn DtorRes(dtor: Option<@fn()>) -> DtorRes { DtorRes { dtor: dtor } @@ -102,7 +102,7 @@ pub unsafe fn CVec(base: *mut T, len: uint) -> CVec { * * dtor - A function to run when the value is destructed, useful * for freeing the buffer, etc. */ -pub unsafe fn c_vec_with_dtor(base: *mut T, len: uint, dtor: fn@()) +pub unsafe fn c_vec_with_dtor(base: *mut T, len: uint, dtor: @fn()) -> CVec { return CVec{ base: base, diff --git a/src/libstd/future.rs b/src/libstd/future.rs index c57754061259..990c37ce807e 100644 --- a/src/libstd/future.rs +++ b/src/libstd/future.rs @@ -37,13 +37,13 @@ pub struct Future { } // FIXME(#2829) -- futures should not be copyable, because they close -// over fn~'s that have pipes and so forth within! +// over ~fn's that have pipes and so forth within! impl Drop for Future { fn finalize(&self) {} } priv enum FutureState { - Pending(fn~() -> A), + Pending(~fn() -> A), Evaluating, Forced(A) } @@ -125,7 +125,7 @@ pub fn from_fn(f: ~fn() -> A) -> Future { Future {state: Pending(f)} } -pub fn spawn(blk: fn~() -> A) -> Future { +pub fn spawn(blk: ~fn() -> A) -> Future { /*! * Create a future from a unique closure. * diff --git a/src/libstd/net_tcp.rs b/src/libstd/net_tcp.rs index 4266cab0a056..5b116705698f 100644 --- a/src/libstd/net_tcp.rs +++ b/src/libstd/net_tcp.rs @@ -625,8 +625,8 @@ pub fn accept(new_conn: TcpNewConnection) */ pub fn listen(host_ip: ip::IpAddr, port: uint, backlog: uint, iotask: &IoTask, - on_establish_cb: fn~(SharedChan>), - new_connect_cb: fn~(TcpNewConnection, + on_establish_cb: ~fn(SharedChan>), + new_connect_cb: ~fn(TcpNewConnection, SharedChan>)) -> result::Result<(), TcpListenErrData> { do listen_common(host_ip, port, backlog, iotask, @@ -643,11 +643,13 @@ pub fn listen(host_ip: ip::IpAddr, port: uint, backlog: uint, } } -fn listen_common(host_ip: ip::IpAddr, port: uint, backlog: uint, - iotask: &IoTask, - on_establish_cb: fn~(SharedChan>), - on_connect_cb: fn~(*uv::ll::uv_tcp_t)) - -> result::Result<(), TcpListenErrData> { +fn listen_common(host_ip: ip::IpAddr, + port: uint, + backlog: uint, + iotask: &IoTask, + on_establish_cb: ~fn(SharedChan>), + on_connect_cb: ~fn(*uv::ll::uv_tcp_t)) + -> result::Result<(), TcpListenErrData> { unsafe { let (stream_closed_po, stream_closed_ch) = stream::<()>(); let stream_closed_ch = SharedChan(stream_closed_ch); @@ -1197,7 +1199,7 @@ struct TcpListenFcData { server_stream_ptr: *uv::ll::uv_tcp_t, stream_closed_ch: SharedChan<()>, kill_ch: SharedChan>, - on_connect_cb: fn~(*uv::ll::uv_tcp_t), + on_connect_cb: ~fn(*uv::ll::uv_tcp_t), iotask: IoTask, ipv6: bool, mut active: bool, diff --git a/src/libstd/par.rs b/src/libstd/par.rs index 0839ce181235..d65921f910cb 100644 --- a/src/libstd/par.rs +++ b/src/libstd/par.rs @@ -94,24 +94,24 @@ pub fn map( xs: &[A], fn_factory: &fn() -> ~fn(&A) -> B) -> ~[B] { vec::concat(map_slices(xs, || { let f = fn_factory(); - fn~(_base: uint, slice : &[A]) -> ~[B] { - vec::map(slice, |x| f(x)) - } + let result: ~fn(uint, &[A]) -> ~[B] = + |_, slice| vec::map(slice, |x| f(x)); + result })) } /// A parallel version of mapi. pub fn mapi( - xs: &[A], - fn_factory: &fn() -> ~fn(uint, &A) -> B) -> ~[B] -{ + xs: &[A], + fn_factory: &fn() -> ~fn(uint, &A) -> B) -> ~[B] { let slices = map_slices(xs, || { let f = fn_factory(); - fn~(base: uint, slice : &[A]) -> ~[B] { + let result: ~fn(uint, &[A]) -> ~[B] = |base, slice| { vec::mapi(slice, |i, x| { f(i + base, x) }) - } + }; + result }); let r = vec::concat(slices); log(info, (r.len(), xs.len())); @@ -126,11 +126,12 @@ pub fn alli( { do vec::all(map_slices(xs, || { let f = fn_factory(); - fn~(base: uint, slice : &[A]) -> bool { + let result: ~fn(uint, &[A]) -> bool = |base, slice| { vec::alli(slice, |i, x| { f(i + base, x) }) - } + }; + result })) |x| { *x } } @@ -140,8 +141,8 @@ pub fn any( fn_factory: &fn() -> ~fn(&A) -> bool) -> bool { do vec::any(map_slices(xs, || { let f = fn_factory(); - fn~(_base : uint, slice: &[A]) -> bool { - vec::any(slice, |x| f(x)) - } + let result: ~fn(uint, &[A]) -> bool = + |_, slice| vec::any(slice, |x| f(x)); + result })) |x| { *x } } diff --git a/src/libstd/test.rs b/src/libstd/test.rs index 3ebebe59d946..4ffa9b01d2b1 100644 --- a/src/libstd/test.rs +++ b/src/libstd/test.rs @@ -409,7 +409,7 @@ type MonitorMsg = (TestDesc, TestResult); fn run_tests(opts: &TestOpts, tests: ~[TestDescAndFn], - callback: fn@(e: TestEvent)) { + callback: @fn(e: TestEvent)) { let mut filtered_tests = filter_tests(opts, tests); let filtered_descs = filtered_tests.map(|t| t.desc); @@ -537,7 +537,7 @@ pub fn filter_tests( struct TestFuture { test: TestDesc, - wait: fn@() -> TestResult, + wait: @fn() -> TestResult, } pub fn run_test(force_ignore: bool, @@ -782,7 +782,7 @@ mod tests { ignore: true, should_fail: false }, - testfn: DynTestFn(fn~() { f()}), + testfn: DynTestFn(|| f()), }; let (p, ch) = stream(); let ch = SharedChan(ch); @@ -800,7 +800,7 @@ mod tests { ignore: true, should_fail: false }, - testfn: DynTestFn(fn~() { f()}), + testfn: DynTestFn(|| f()), }; let (p, ch) = stream(); let ch = SharedChan(ch); @@ -819,7 +819,7 @@ mod tests { ignore: false, should_fail: true }, - testfn: DynTestFn(fn~() { f() }), + testfn: DynTestFn(|| f()), }; let (p, ch) = stream(); let ch = SharedChan(ch); @@ -837,7 +837,7 @@ mod tests { ignore: false, should_fail: true }, - testfn: DynTestFn(fn~() { f() }), + testfn: DynTestFn(|| f()), }; let (p, ch) = stream(); let ch = SharedChan(ch); @@ -890,7 +890,7 @@ mod tests { ignore: true, should_fail: false, }, - testfn: DynTestFn(fn~() { }), + testfn: DynTestFn(|| {}), }, TestDescAndFn { desc: TestDesc { @@ -898,7 +898,7 @@ mod tests { ignore: false, should_fail: false }, - testfn: DynTestFn(fn~() { }), + testfn: DynTestFn(|| {}), }, ]; let filtered = filter_tests(&opts, tests); diff --git a/src/libstd/uv_global_loop.rs b/src/libstd/uv_global_loop.rs index 1898ef77320b..daf90f345e05 100644 --- a/src/libstd/uv_global_loop.rs +++ b/src/libstd/uv_global_loop.rs @@ -97,7 +97,7 @@ fn get_monitor_task_gl() -> IoTask { fn spawn_loop() -> IoTask { let builder = do task().add_wrapper |task_body| { - fn~() { + let result: ~fn() = || { // The I/O loop task also needs to be weak so it doesn't keep // the runtime alive unsafe { @@ -112,7 +112,8 @@ fn spawn_loop() -> IoTask { debug!("global libuv task is leaving weakened state"); } } - } + }; + result }; let builder = builder.unlinked(); spawn_iotask(builder) diff --git a/src/libstd/uv_iotask.rs b/src/libstd/uv_iotask.rs index 14726a0854de..6179b10f3c37 100644 --- a/src/libstd/uv_iotask.rs +++ b/src/libstd/uv_iotask.rs @@ -76,8 +76,7 @@ pub fn spawn_iotask(task: task::TaskBuilder) -> IoTask { * module. It is not safe to send the `loop_ptr` param to this callback out * via ports/chans. */ -pub unsafe fn interact(iotask: &IoTask, - cb: fn~(*c_void)) { +pub unsafe fn interact(iotask: &IoTask, cb: ~fn(*c_void)) { send_msg(iotask, Interaction(cb)); } @@ -98,7 +97,7 @@ pub fn exit(iotask: &IoTask) { // INTERNAL API enum IoTaskMsg { - Interaction (fn~(*libc::c_void)), + Interaction(~fn(*libc::c_void)), TeardownLoop }