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.
This commit is contained in:
Dan Gohman 2021-01-06 08:20:58 -08:00
parent da305a2b00
commit 68338bc2b0
1 changed files with 4 additions and 2 deletions

View File

@ -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) {