D7107: rust-cross-platform: remove `unimplemented!` to get compile-time errors instead
Alphare (Raphaël Gomès)
phabricator at mercurial-scm.org
Tue Oct 15 14:42:58 UTC 2019
Alphare created this revision.
Herald added subscribers: mercurial-devel, kevincox, durin42.
Herald added a reviewer: hg-reviewers.
REVISION SUMMARY
We should get a compile-time error that there is missing functionality for the
targeted platform instead of the program breaking at runtime.
REPOSITORY
rHG Mercurial
REVISION DETAIL
https://phab.mercurial-scm.org/D7107
AFFECTED FILES
rust/hg-core/src/utils/files.rs
rust/hg-core/src/utils/hg_path.rs
CHANGE DETAILS
diff --git a/rust/hg-core/src/utils/hg_path.rs b/rust/hg-core/src/utils/hg_path.rs
--- a/rust/hg-core/src/utils/hg_path.rs
+++ b/rust/hg-core/src/utils/hg_path.rs
@@ -258,11 +258,8 @@
use std::os::unix::ffi::OsStrExt;
os_str = std::ffi::OsStr::from_bytes(&hg_path.as_ref().as_bytes());
}
- #[cfg(windows)]
- {
- // TODO: convert from Windows MBCS (ANSI encoding) to WTF8.
- unimplemented!();
- }
+ // TODO Handle other platforms
+ // TODO: convert from WTF8 to Windows MBCS (ANSI encoding).
Ok(os_str.to_os_string())
}
@@ -281,11 +278,9 @@
use std::os::unix::ffi::OsStrExt;
buf = HgPathBuf::from_bytes(&os_string.as_ref().as_bytes());
}
- #[cfg(windows)]
- {
- // TODO: convert from WTF8 to Windows MBCS (ANSI encoding).
- unimplemented!();
- }
+ // TODO Handle other platforms
+ // TODO: convert from WTF8 to Windows MBCS (ANSI encoding).
+
buf.check_state()?;
Ok(buf)
}
@@ -300,11 +295,9 @@
use std::os::unix::ffi::OsStrExt;
buf = HgPathBuf::from_bytes(&os_str.as_bytes());
}
- #[cfg(windows)]
- {
- // TODO: convert from WTF8 to Windows MBCS (ANSI encoding).
- unimplemented!();
- }
+ // TODO Handle other platforms
+ // TODO: convert from WTF8 to Windows MBCS (ANSI encoding).
+
buf.check_state()?;
Ok(buf)
}
diff --git a/rust/hg-core/src/utils/files.rs b/rust/hg-core/src/utils/files.rs
--- a/rust/hg-core/src/utils/files.rs
+++ b/rust/hg-core/src/utils/files.rs
@@ -22,12 +22,9 @@
use std::os::unix::ffi::OsStrExt;
os_str = std::ffi::OsStr::from_bytes(bytes);
}
- #[cfg(windows)]
- {
- // TODO: convert from Windows MBCS (ANSI encoding) to WTF8.
- // Perhaps, the return type would have to be Result<PathBuf>.
- unimplemented!()
- }
+ // TODO Handle other platforms
+ // TODO: convert from WTF8 to Windows MBCS (ANSI encoding).
+ // Perhaps, the return type would have to be Result<PathBuf>.
Path::new(os_str)
}
To: Alphare, #hg-reviewers
Cc: durin42, kevincox, mercurial-devel
More information about the Mercurial-devel
mailing list