From 1795cda1b7f87d1217dd04d580289cd46fb43310 Mon Sep 17 00:00:00 2001 From: Graydon Hoare Date: Tue, 14 Aug 2012 12:11:15 -0700 Subject: [PATCH] De-mode more pieces of core. --- src/libcore/hash.rs | 10 +++++-- src/libcore/run.rs | 64 ++++++++++++++++++++++------------------- src/libcore/to_bytes.rs | 4 +++ src/libcore/to_str.rs | 4 +++ src/libcore/tuple.rs | 4 +++ src/libcore/unicode.rs | 4 +++ src/libcore/util.rs | 4 +++ 7 files changed, 61 insertions(+), 33 deletions(-) diff --git a/src/libcore/hash.rs b/src/libcore/hash.rs index d261d537235d..f653ce1fb8e1 100644 --- a/src/libcore/hash.rs +++ b/src/libcore/hash.rs @@ -1,3 +1,7 @@ +// NB: transitionary, de-mode-ing. +#[forbid(deprecated_mode)]; +#[forbid(deprecated_pattern)]; + /*! * Implementation of SipHash 2-4 * @@ -362,9 +366,9 @@ fn test_siphash() { let stream_inc = &State(k0,k1); let stream_full = &State(k0,k1); - fn to_hex_str(r:[u8]/8) -> ~str { + fn to_hex_str(r: &[u8]/8) -> ~str { let mut s = ~""; - for vec::each(r) |b| { s += uint::to_str(b as uint, 16u); } + for vec::each(*r) |b| { s += uint::to_str(b as uint, 16u); } return s; } @@ -379,7 +383,7 @@ fn test_siphash() { stream_full.input(buf); let f = stream_full.result_str(); let i = stream_inc.result_str(); - let v = to_hex_str(vecs[t]); + let v = to_hex_str(&vecs[t]); debug!{"%d: (%s) => inc=%s full=%s", t, v, i, f}; assert f == i && f == v; diff --git a/src/libcore/run.rs b/src/libcore/run.rs index 7b550f832b73..02c7fe6da27a 100644 --- a/src/libcore/run.rs +++ b/src/libcore/run.rs @@ -1,3 +1,7 @@ +// NB: transitionary, de-mode-ing. +#[forbid(deprecated_mode)]; +#[forbid(deprecated_pattern)]; + //! Process spawning import option::{some, none}; import libc::{pid_t, c_void, c_int}; @@ -62,9 +66,9 @@ trait program { * * The process id of the spawned process */ -fn spawn_process(prog: ~str, args: ~[~str], - env: option<~[(~str,~str)]>, - dir: option<~str>, +fn spawn_process(prog: &str, args: &[~str], + env: &option<~[(~str,~str)]>, + dir: &option<~str>, in_fd: c_int, out_fd: c_int, err_fd: c_int) -> pid_t { do with_argv(prog, args) |argv| { @@ -77,7 +81,7 @@ fn spawn_process(prog: ~str, args: ~[~str], } } -fn with_argv(prog: ~str, args: ~[~str], +fn with_argv(prog: &str, args: &[~str], cb: fn(**libc::c_char) -> T) -> T { let mut argptrs = str::as_c_str(prog, |b| ~[b]); let mut tmps = ~[]; @@ -91,11 +95,11 @@ fn with_argv(prog: ~str, args: ~[~str], } #[cfg(unix)] -fn with_envp(env: option<~[(~str,~str)]>, +fn with_envp(env: &option<~[(~str,~str)]>, cb: fn(*c_void) -> T) -> T { // On posixy systems we can pass a char** for envp, which is // a null-terminated array of "k=v\n" strings. - match env { + match *env { some(es) if !vec::is_empty(es) => { let mut tmps = ~[]; let mut ptrs = ~[]; @@ -140,9 +144,9 @@ fn with_envp(env: option<~[(~str,~str)]>, } } -fn with_dirp(d: option<~str>, +fn with_dirp(d: &option<~str>, cb: fn(*libc::c_char) -> T) -> T { - match d { + match *d { some(dir) => str::as_c_str(dir, cb), none => cb(ptr::null()) } @@ -160,8 +164,8 @@ fn with_dirp(d: option<~str>, * * The process id */ -fn run_program(prog: ~str, args: ~[~str]) -> int { - let pid = spawn_process(prog, args, none, none, +fn run_program(prog: &str, args: &[~str]) -> int { + let pid = spawn_process(prog, args, &none, &none, 0i32, 0i32, 0i32); if pid == -1 as pid_t { fail; } return waitpid(pid); @@ -183,12 +187,12 @@ fn run_program(prog: ~str, args: ~[~str]) -> int { * * A class with a field */ -fn start_program(prog: ~str, args: ~[~str]) -> program { +fn start_program(prog: &str, args: &[~str]) -> program { let pipe_input = os::pipe(); let pipe_output = os::pipe(); let pipe_err = os::pipe(); let pid = - spawn_process(prog, args, none, none, + spawn_process(prog, args, &none, &none, pipe_input.in, pipe_output.out, pipe_err.out); @@ -203,28 +207,28 @@ fn start_program(prog: ~str, args: ~[~str]) -> program { err_file: *libc::FILE, mut finished: bool}; - fn close_repr_input(r: prog_repr) { + fn close_repr_input(r: &prog_repr) { let invalid_fd = -1i32; if r.in_fd != invalid_fd { libc::close(r.in_fd); r.in_fd = invalid_fd; } } - fn finish_repr(r: prog_repr) -> int { + fn finish_repr(r: &prog_repr) -> int { if r.finished { return 0; } r.finished = true; close_repr_input(r); return waitpid(r.pid); } - fn destroy_repr(r: prog_repr) { + fn destroy_repr(r: &prog_repr) { finish_repr(r); libc::fclose(r.out_file); libc::fclose(r.err_file); } class prog_res { let r: prog_repr; - new(-r: prog_repr) { self.r = r; } - drop { destroy_repr(self.r); } + new(+r: prog_repr) { self.r = r; } + drop { destroy_repr(&self.r); } } impl prog_res: program { @@ -232,16 +236,16 @@ fn start_program(prog: ~str, args: ~[~str]) -> program { fn input() -> io::writer { io::fd_writer(self.r.in_fd, false) } fn output() -> io::reader { io::FILE_reader(self.r.out_file, false) } fn err() -> io::reader { io::FILE_reader(self.r.err_file, false) } - fn close_input() { close_repr_input(self.r); } - fn finish() -> int { finish_repr(self.r) } - fn destroy() { destroy_repr(self.r); } + fn close_input() { close_repr_input(&self.r); } + fn finish() -> int { finish_repr(&self.r) } + fn destroy() { destroy_repr(&self.r); } } let repr = {pid: pid, mut in_fd: pipe_input.out, out_file: os::fdopen(pipe_output.in), err_file: os::fdopen(pipe_err.in), mut finished: false}; - return prog_res(repr) as program; + return prog_res(move repr) as program; } fn read_all(rd: io::reader) -> ~str { @@ -267,13 +271,13 @@ fn read_all(rd: io::reader) -> ~str { * A record, {status: int, out: str, err: str} containing the exit code, * the contents of stdout and the contents of stderr. */ -fn program_output(prog: ~str, args: ~[~str]) -> +fn program_output(prog: &str, args: &[~str]) -> {status: int, out: ~str, err: ~str} { let pipe_in = os::pipe(); let pipe_out = os::pipe(); let pipe_err = os::pipe(); - let pid = spawn_process(prog, args, none, none, + let pid = spawn_process(prog, args, &none, &none, pipe_in.in, pipe_out.out, pipe_err.out); os::close(pipe_in.in); @@ -321,7 +325,7 @@ fn program_output(prog: ~str, args: ~[~str]) -> return {status: status, out: outs, err: errs}; } -fn writeclose(fd: c_int, s: ~str) { +fn writeclose(fd: c_int, s: &str) { import io::writer_util; error!{"writeclose %d, %s", fd as int, s}; @@ -393,9 +397,9 @@ mod tests { // Regression test for memory leaks #[ignore(cfg(windows))] // FIXME (#2626) fn test_leaks() { - run::run_program(~"echo", ~[]); - run::start_program(~"echo", ~[]); - run::program_output(~"echo", ~[]); + run::run_program("echo", []); + run::start_program("echo", []); + run::program_output("echo", []); } #[test] @@ -406,7 +410,7 @@ mod tests { let pid = run::spawn_process( - ~"cat", ~[], none, none, + "cat", [], &none, &none, pipe_in.in, pipe_out.out, pipe_err.out); os::close(pipe_in.in); os::close(pipe_out.out); @@ -426,8 +430,8 @@ mod tests { #[test] fn waitpid() { - let pid = run::spawn_process(~"false", ~[], - none, none, + let pid = run::spawn_process("false", [], + &none, &none, 0i32, 0i32, 0i32); let status = run::waitpid(pid); assert status == 1; diff --git a/src/libcore/to_bytes.rs b/src/libcore/to_bytes.rs index 90026e1a1945..11097b36d4de 100644 --- a/src/libcore/to_bytes.rs +++ b/src/libcore/to_bytes.rs @@ -1,3 +1,7 @@ +// NB: transitionary, de-mode-ing. +#[forbid(deprecated_mode)]; +#[forbid(deprecated_pattern)]; + trait ToBytes { fn to_bytes() -> ~[u8]; } diff --git a/src/libcore/to_str.rs b/src/libcore/to_str.rs index 93cae2772acd..78ea4a5263d7 100644 --- a/src/libcore/to_str.rs +++ b/src/libcore/to_str.rs @@ -1,3 +1,7 @@ +// NB: transitionary, de-mode-ing. +#[forbid(deprecated_mode)]; +#[forbid(deprecated_pattern)]; + trait ToStr { fn to_str() -> ~str; } impl int: ToStr { diff --git a/src/libcore/tuple.rs b/src/libcore/tuple.rs index 749532c3f4b5..5b5bb6660c3f 100644 --- a/src/libcore/tuple.rs +++ b/src/libcore/tuple.rs @@ -1,3 +1,7 @@ +// NB: transitionary, de-mode-ing. +#[forbid(deprecated_mode)]; +#[forbid(deprecated_pattern)]; + //! Operations on tuples trait TupleOps { diff --git a/src/libcore/unicode.rs b/src/libcore/unicode.rs index c7f0c9bfa179..6f3419aadd41 100644 --- a/src/libcore/unicode.rs +++ b/src/libcore/unicode.rs @@ -1,3 +1,7 @@ +// NB: transitionary, de-mode-ing. +#[forbid(deprecated_mode)]; +#[forbid(deprecated_pattern)]; + mod general_category { pure fn Cc(c: char) -> bool { return match c { diff --git a/src/libcore/util.rs b/src/libcore/util.rs index c8e1d72e3057..3eb9474598cb 100644 --- a/src/libcore/util.rs +++ b/src/libcore/util.rs @@ -1,3 +1,7 @@ +// NB: transitionary, de-mode-ing. +#[forbid(deprecated_mode)]; +#[forbid(deprecated_pattern)]; + /** * Miscellaneous helpers for common patterns. */