diff options
| author | Tim Chevalier <chevalier@alum.wellesley.edu> | 2013-01-24 15:23:31 -0800 |
|---|---|---|
| committer | Tim Chevalier <chevalier@alum.wellesley.edu> | 2013-01-24 15:24:01 -0800 |
| commit | 5ff6beed60fe3a1b783968deda9b5ca99afbeba6 (patch) | |
| tree | d1d70928e9c1821e613c16c05108a98d49fcc089 /src/librustc/metadata | |
| parent | 72c04a9ffe0f8d164599e2f24f02277f1499f089 (diff) | |
| download | rust-5ff6beed60fe3a1b783968deda9b5ca99afbeba6.tar.gz rust-5ff6beed60fe3a1b783968deda9b5ca99afbeba6.zip | |
rustc: One Less Bad Copy
Diffstat (limited to 'src/librustc/metadata')
| -rw-r--r-- | src/librustc/metadata/filesearch.rs | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/librustc/metadata/filesearch.rs b/src/librustc/metadata/filesearch.rs index 15c0a1944ea..b818bca650d 100644 --- a/src/librustc/metadata/filesearch.rs +++ b/src/librustc/metadata/filesearch.rs @@ -148,10 +148,12 @@ fn get_cargo_root_nearest() -> Result<Path, ~str> { do result::chain(get_cargo_root()) |p| { let cwd = os::getcwd(); let cwd_cargo = cwd.push(".cargo"); + let cargo_is_non_root_file = + !os::path_is_dir(&cwd_cargo) && cwd_cargo != p; let mut par_cargo = cwd.pop().push(".cargo"); - let mut rslt = result::Ok(copy cwd_cargo); // XXX: Bad copy. + let mut rslt = result::Ok(cwd_cargo); - if !os::path_is_dir(&cwd_cargo) && cwd_cargo != p { + if cargo_is_non_root_file { while par_cargo != p { if os::path_is_dir(&par_cargo) { rslt = result::Ok(par_cargo); |
