diff options
| author | Ellis Hoag <ellis.sparky.hoag@gmail.com> | 2022-08-31 22:02:35 -0700 |
|---|---|---|
| committer | Antoni Boucher <bouanto@zoho.com> | 2023-02-28 19:07:24 -0500 |
| commit | 4718beead66e1d234ff40d1621b84a2f3537fa91 (patch) | |
| tree | cdabbcaeaaa2bbea324a3185a057c5a651058fd2 /src | |
| parent | c4149da9fd52d93aecbdcb1aae5b2c830f3c0ab6 (diff) | |
| download | rust-4718beead66e1d234ff40d1621b84a2f3537fa91.tar.gz rust-4718beead66e1d234ff40d1621b84a2f3537fa91.zip | |
Add wrapper type for ExitCode for use in RanlibFailure
Diffstat (limited to 'src')
| -rw-r--r-- | src/archive.rs | 2 | ||||
| -rw-r--r-- | src/errors.rs | 24 |
2 files changed, 24 insertions, 2 deletions
diff --git a/src/archive.rs b/src/archive.rs index 77fbb2c500e..ac0342f6b80 100644 --- a/src/archive.rs +++ b/src/archive.rs @@ -183,7 +183,7 @@ impl<'a> ArchiveBuilder<'a> for ArArchiveBuilder<'a> { std::process::Command::new("ranlib").arg(output).status().expect("Couldn't run ranlib"); if !status.success() { - self.config.sess.emit_fatal(RanlibFailure { exit_code: format!("{:?}", status.code()) }); + self.config.sess.emit_fatal(RanlibFailure::new(status.code())); } any_members diff --git a/src/errors.rs b/src/errors.rs index 01de75976a3..b5fc789c279 100644 --- a/src/errors.rs +++ b/src/errors.rs @@ -1,10 +1,32 @@ +use rustc_errors::{DiagnosticArgValue, IntoDiagnosticArg}; use rustc_macros::SessionDiagnostic; use rustc_span::Span; +use std::borrow::Cow; + +struct ExitCode { + pub exit_code: Option<i32>, +} + +impl IntoDiagnosticArg for ExitCode { + fn into_diagnostic_arg(self) -> DiagnosticArgValue<'static> { + match self.exit_code { + Some(t) => t.into_diagnostic_arg(), + None => DiagnosticArgValue::Str(Cow::Borrowed("None")), + } + } +} #[derive(SessionDiagnostic)] #[diag(codegen_gcc::ranlib_failure)] pub(crate) struct RanlibFailure { - pub exit_code: String, + exit_code: ExitCode, +} + +impl RanlibFailure { + pub fn new(exit_code: Option<i32>) -> Self { + let exit_code = ExitCode{ exit_code }; + RanlibFailure { exit_code } + } } #[derive(SessionDiagnostic)] |
