From fbb96c549461cd92b080c2e21736736ca57e6780 Mon Sep 17 00:00:00 2001 From: Aviv Palivoda Date: Sat, 25 Jan 2020 16:58:11 +0200 Subject: [PATCH] Fix os.symlink on windows --- vm/src/stdlib/os.rs | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/vm/src/stdlib/os.rs b/vm/src/stdlib/os.rs index 363ce9cad..0b10287a4 100644 --- a/vm/src/stdlib/os.rs +++ b/vm/src/stdlib/os.rs @@ -850,17 +850,13 @@ fn os_symlink( vm: &VirtualMachine, ) -> PyResult<()> { use std::os::windows::fs as win_fs; - let ret = match fs::metadata(dst.as_str()) { - Ok(meta) => { - if meta.is_file() { - win_fs::symlink_file(src.as_str(), dst.as_str()) - } else if meta.is_dir() { - win_fs::symlink_dir(src.as_str(), dst.as_str()) - } else { - panic!("Uknown file type"); - } - } - Err(_) => win_fs::symlink_file(src.as_str(), dst.as_str()), + let meta = fs::metadata(src.as_str()).map_err(|err| convert_io_error(vm, err))?; + let ret = if meta.is_file() { + win_fs::symlink_file(src.as_str(), dst.as_str()) + } else if meta.is_dir() { + win_fs::symlink_dir(src.as_str(), dst.as_str()) + } else { + panic!("Uknown file type"); }; ret.map_err(|err| convert_io_error(vm, err)) }