From a25f939170bb73d813c5eb4cbed631253ba0cc15 Mon Sep 17 00:00:00 2001 From: Jhonny Bill Mena Date: Tue, 4 Oct 2022 13:25:13 -0400 Subject: [PATCH] Address PR comments - UPDATE - revert migration of logs - UPDATE - use derive on LinkRlibError enum - [Gardening] UPDATE - alphabetically sort fluent_messages - UPDATE - use PathBuf and unify both AddNativeLibrary to use Display (which is what PathBuf uses when conforming to IntoDiagnosticArg) - UPDATE - fluent messages sort after rebase --- compiler/rustc_codegen_ssa/src/back/link.rs | 10 +---- compiler/rustc_codegen_ssa/src/back/linker.rs | 6 +-- compiler/rustc_codegen_ssa/src/errors.rs | 44 ++++--------------- .../locales/en-US/codegen_ssa.ftl | 6 --- compiler/rustc_error_messages/src/lib.rs | 4 +- 5 files changed, 16 insertions(+), 54 deletions(-) diff --git a/compiler/rustc_codegen_ssa/src/back/link.rs b/compiler/rustc_codegen_ssa/src/back/link.rs index ac2a8f969df..e798fb421df 100644 --- a/compiler/rustc_codegen_ssa/src/back/link.rs +++ b/compiler/rustc_codegen_ssa/src/back/link.rs @@ -362,10 +362,7 @@ fn link_rlib<'a>( continue; } ab.add_archive(&location, Box::new(|_| false)).unwrap_or_else(|error| { - sess.emit_fatal(errors::AddNativeLibrary { - library_path: &location.to_string_lossy(), - error, - }); + sess.emit_fatal(errors::AddNativeLibrary { library_path: location, error }); }); } } @@ -381,10 +378,7 @@ fn link_rlib<'a>( ); ab.add_archive(&output_path, Box::new(|_| false)).unwrap_or_else(|error| { - sess.emit_fatal(errors::AddNativeLibrary { - library_path: &output_path.display().to_string(), - error, - }); + sess.emit_fatal(errors::AddNativeLibrary { library_path: output_path, error }); }); } diff --git a/compiler/rustc_codegen_ssa/src/back/linker.rs b/compiler/rustc_codegen_ssa/src/back/linker.rs index debcffcd326..bad22ccb1fe 100644 --- a/compiler/rustc_codegen_ssa/src/back/linker.rs +++ b/compiler/rustc_codegen_ssa/src/back/linker.rs @@ -91,13 +91,13 @@ pub fn get_linker<'a>( arg.push(format!("{}\\lib\\{}\\store", root_lib_path.display(), a)); cmd.arg(&arg); } else { - sess.emit_warning(errors::UnsupportedArch); + warn!("arch is not supported"); } } else { - sess.emit_warning(errors::MsvcPathNotFound); + warn!("MSVC root path lib location not found"); } } else { - sess.emit_warning(errors::LinkExeNotFound); + warn!("link.exe not found"); } } diff --git a/compiler/rustc_codegen_ssa/src/errors.rs b/compiler/rustc_codegen_ssa/src/errors.rs index 6bd1dc2e03f..bd399ffb5a6 100644 --- a/compiler/rustc_codegen_ssa/src/errors.rs +++ b/compiler/rustc_codegen_ssa/src/errors.rs @@ -30,18 +30,6 @@ pub struct SymbolFileWriteFailure { pub error: Error, } -#[derive(Diagnostic)] -#[diag(codegen_ssa::unsupported_arch)] -pub struct UnsupportedArch; - -#[derive(Diagnostic)] -#[diag(codegen_ssa::msvc_path_not_found)] -pub struct MsvcPathNotFound; - -#[derive(Diagnostic)] -#[diag(codegen_ssa::link_exe_not_found)] -pub struct LinkExeNotFound; - #[derive(Diagnostic)] #[diag(codegen_ssa::ld64_unimplemented_modifier)] pub struct Ld64UnimplementedModifier; @@ -115,8 +103,8 @@ pub struct IncompatibleLinkingModifiers; #[derive(Diagnostic)] #[diag(codegen_ssa::add_native_library)] -pub struct AddNativeLibrary<'a> { - pub library_path: &'a str, +pub struct AddNativeLibrary { + pub library_path: PathBuf, pub error: Error, } @@ -129,30 +117,16 @@ pub struct MultipleExternalFuncDecl<'a> { pub library_name: &'a str, } +#[derive(Diagnostic)] pub enum LinkRlibError { + #[diag(codegen_ssa::rlib_missing_format)] MissingFormat, - OnlyRmetaFound { crate_name: Symbol }, - NotFound { crate_name: Symbol }, -} -impl IntoDiagnostic<'_, !> for LinkRlibError { - fn into_diagnostic(self, handler: &Handler) -> DiagnosticBuilder<'_, !> { - match self { - LinkRlibError::MissingFormat => { - handler.struct_fatal(fluent::codegen_ssa::rlib_missing_format) - } - LinkRlibError::OnlyRmetaFound { crate_name } => { - let mut diag = handler.struct_fatal(fluent::codegen_ssa::rlib_only_rmeta_found); - diag.set_arg("crate_name", crate_name); - diag - } - LinkRlibError::NotFound { crate_name } => { - let mut diag = handler.struct_fatal(fluent::codegen_ssa::rlib_not_found); - diag.set_arg("crate_name", crate_name); - diag - } - } - } + #[diag(codegen_ssa::rlib_only_rmeta_found)] + OnlyRmetaFound { crate_name: Symbol }, + + #[diag(codegen_ssa::rlib_not_found)] + NotFound { crate_name: Symbol }, } #[derive(Diagnostic)] diff --git a/compiler/rustc_error_messages/locales/en-US/codegen_ssa.ftl b/compiler/rustc_error_messages/locales/en-US/codegen_ssa.ftl index d996a096a89..99ddf6842da 100644 --- a/compiler/rustc_error_messages/locales/en-US/codegen_ssa.ftl +++ b/compiler/rustc_error_messages/locales/en-US/codegen_ssa.ftl @@ -4,12 +4,6 @@ codegen_ssa_version_script_write_failure = failed to write version script: {$err codegen_ssa_symbol_file_write_failure = failed to write symbols file: {$error} -codegen_ssa_unsupported_arch = arch is not supported - -codegen_ssa_msvc_path_not_found = MSVC root path lib location not found - -codegen_ssa_link_exe_not_found = link.exe not found - codegen_ssa_ld64_unimplemented_modifier = `as-needed` modifier not implemented yet for ld64 codegen_ssa_linker_unsupported_modifier = `as-needed` modifier not supported for current linker diff --git a/compiler/rustc_error_messages/src/lib.rs b/compiler/rustc_error_messages/src/lib.rs index 10f8efdffa8..77f87d5b007 100644 --- a/compiler/rustc_error_messages/src/lib.rs +++ b/compiler/rustc_error_messages/src/lib.rs @@ -40,9 +40,10 @@ fluent_messages! { attr => "../locales/en-US/attr.ftl", borrowck => "../locales/en-US/borrowck.ftl", builtin_macros => "../locales/en-US/builtin_macros.ftl", + codegen_gcc => "../locales/en-US/codegen_gcc.ftl", + codegen_ssa => "../locales/en-US/codegen_ssa.ftl", compiletest => "../locales/en-US/compiletest.ftl", const_eval => "../locales/en-US/const_eval.ftl", - codegen_gcc => "../locales/en-US/codegen_gcc.ftl", driver => "../locales/en-US/driver.ftl", expand => "../locales/en-US/expand.ftl", hir_analysis => "../locales/en-US/hir_analysis.ftl", @@ -63,7 +64,6 @@ fluent_messages! { symbol_mangling => "../locales/en-US/symbol_mangling.ftl", trait_selection => "../locales/en-US/trait_selection.ftl", ty_utils => "../locales/en-US/ty_utils.ftl", - codegen_ssa => "../locales/en-US/codegen_ssa.ftl", } pub use fluent_generated::{self as fluent, DEFAULT_LOCALE_RESOURCES};