diff options
| author | bors <bors@rust-lang.org> | 2021-01-06 21:48:06 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2021-01-06 21:48:06 +0000 |
| commit | d7769b9beacc1cd10d98590838975cbbfa1d76a7 (patch) | |
| tree | 34b583cf3d09f051d6292156fb324f507ae4f7a7 | |
| parent | c2de47a9aa4c9812884f341f1852e9c9610f5f7a (diff) | |
| parent | 68338bc2b0c399d44362ebf7991ef76dbbf57808 (diff) | |
| download | rust-d7769b9beacc1cd10d98590838975cbbfa1d76a7.tar.gz rust-d7769b9beacc1cd10d98590838975cbbfa1d76a7.zip | |
Auto merge of #80754 - sunfishcode:path-cleanup/rustc-fs-util, r=davidtwco
Optimize away a `fs::metadata` call. This also eliminates a use of a `Path` convenience function, in support of #80741, refactoring `std::path` to focus on pure data structures and algorithms.
| -rw-r--r-- | compiler/rustc_fs_util/src/lib.rs | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/compiler/rustc_fs_util/src/lib.rs b/compiler/rustc_fs_util/src/lib.rs index 7742961e65d..87e97c746ef 100644 --- a/compiler/rustc_fs_util/src/lib.rs +++ b/compiler/rustc_fs_util/src/lib.rs @@ -62,8 +62,10 @@ pub enum LinkOrCopy { pub fn link_or_copy<P: AsRef<Path>, Q: AsRef<Path>>(p: P, q: Q) -> io::Result<LinkOrCopy> { let p = p.as_ref(); let q = q.as_ref(); - if q.exists() { - fs::remove_file(&q)?; + match fs::remove_file(&q) { + Ok(()) => (), + Err(err) if err.kind() == io::ErrorKind::NotFound => (), + Err(err) => return Err(err), } match fs::hard_link(p, q) { |
