diff --git a/src/compiletest/procsrv.rs b/src/compiletest/procsrv.rs index e00b864f2e9e..34918e391828 100644 --- a/src/compiletest/procsrv.rs +++ b/src/compiletest/procsrv.rs @@ -13,23 +13,25 @@ use std::io::process::{ProcessExit, Process, ProcessConfig, ProcessOutput}; #[cfg(target_os = "win32")] -fn target_env(lib_path: &str, prog: &str) -> Vec<(~str,~str)> { - - let mut env = os::env(); +fn target_env(lib_path: &str, prog: &str) -> Vec<(~str, ~str)> { + let env = os::env(); // Make sure we include the aux directory in the path assert!(prog.ends_with(".exe")); let aux_path = prog.slice(0u, prog.len() - 4u).to_owned() + ".libaux"; - env = env.map(|pair| { - let (k,v) = (*pair).clone(); - if k == ~"PATH" { (~"PATH", v + ";" + lib_path + ";" + aux_path) } - else { (k,v) } - }); + let mut new_env: Vec<_> = env.move_iter().map(|(k, v)| { + let new_v = if "PATH" == k { + format!("{};{};{}", v, lib_path, aux_path) + } else { + v + }; + (k, new_v) + }).collect(); if prog.ends_with("rustc.exe") { - env.push((~"RUST_THREADS", ~"1")); + new_env.push((~"RUST_THREADS", ~"1")); } - return env; + return new_env; } #[cfg(target_os = "linux")] diff --git a/src/compiletest/runtest.rs b/src/compiletest/runtest.rs index b07588a914d1..e057909a06cd 100644 --- a/src/compiletest/runtest.rs +++ b/src/compiletest/runtest.rs @@ -529,7 +529,7 @@ fn to_lower( s : &str ) -> ~str { c } } ).collect(); - str::from_chars( c ) + str::from_chars(c.as_slice()) } #[cfg(target_os = "win32")]