}
Ok(())
}
- /// Helper function used inside the shims of foreign functions to check that the target
- /// platform is `platform`. It returns an error using the `name` of the foreign function if
- /// this is not the case.
- fn check_platform(&mut self, platform: &str, name: &str) -> InterpResult<'tcx> {
- if self.eval_context_mut().tcx.sess.target.target.target_os.to_lowercase() != platform {
- throw_unsup_format!(
- "`{}` is only available on the `{}` platform",
- name,
- platform,
- )
- }
- Ok(())
+ /// Helper function used inside the shims of foreign functions to assert that the target
+ /// platform is `platform`. It panics showing a message with the `name` of the foreign function
+ /// if this is not the case.
+ fn assert_platform(&mut self, platform: &str, name: &str) {
+ assert_eq!(
+ self.eval_context_mut().tcx.sess.target.target.target_os.to_lowercase(),
+ platform,
+ "`{}` is only available on the `{}` platform",
+ name,
+ platform
+ )
}
/// Sets the last error variable.
) -> InterpResult<'tcx, i32> {
let this = self.eval_context_mut();
this.check_no_isolation("stat")?;
- this.check_platform("macos", "stat")?;
+ this.assert_platform("macos", "stat");
// `stat` always follows symlinks.
this.macos_stat_or_lstat(true, path_op, buf_op)
}
) -> InterpResult<'tcx, i32> {
let this = self.eval_context_mut();
this.check_no_isolation("lstat")?;
- this.check_platform("macos", "lstat")?;
+ this.assert_platform("macos", "lstat");
this.macos_stat_or_lstat(false, path_op, buf_op)
}
let this = self.eval_context_mut();
this.check_no_isolation("fstat")?;
- this.check_platform("macos", "fstat")?;
+ this.assert_platform("macos", "fstat");
let fd = this.read_scalar(fd_op)?.to_i32()?;
let this = self.eval_context_mut();
this.check_no_isolation("statx")?;
- this.check_platform("linux", "statx")?;
+ this.assert_platform("linux", "statx");
let statxbuf_scalar = this.read_scalar(statxbuf_op)?.not_undef()?;
let pathname_scalar = this.read_scalar(pathname_op)?.not_undef()?;