Skip to content

Commit

Permalink
UPDATE - accept dyn error and make Box<dyn error> conform to IntoDiag…
Browse files Browse the repository at this point in the history
…nosticArg
  • Loading branch information
JhonnyBillM committed Nov 4, 2022
1 parent 28491a7 commit 540c3f9
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 22 deletions.
29 changes: 14 additions & 15 deletions compiler/rustc_codegen_ssa/src/back/archive.rs
Original file line number Diff line number Diff line change
Expand Up @@ -35,30 +35,29 @@ pub trait ArchiveBuilderBuilder {
outdir: &Path,
bundled_lib_file_names: &FxHashSet<Symbol>,
) -> Result<(), ExtractBundledLibsError<'_>> {
let archive_map =
unsafe {
Mmap::map(File::open(rlib).map_err(|e| ExtractBundledLibsError::OpenFile {
rlib,
error: e.to_string(),
})?)
.map_err(|e| ExtractBundledLibsError::MmapFile { rlib, error: e.to_string() })?
};
let archive_map = unsafe {
Mmap::map(
File::open(rlib)
.map_err(|e| ExtractBundledLibsError::OpenFile { rlib, error: Box::new(e) })?,
)
.map_err(|e| ExtractBundledLibsError::MmapFile { rlib, error: Box::new(e) })?
};
let archive = ArchiveFile::parse(&*archive_map)
.map_err(|e| ExtractBundledLibsError::ParseArchive { rlib, error: e.to_string() })?;
.map_err(|e| ExtractBundledLibsError::ParseArchive { rlib, error: Box::new(e) })?;

for entry in archive.members() {
let entry = entry
.map_err(|e| ExtractBundledLibsError::ReadEntry { rlib, error: e.to_string() })?;
let data = entry.data(&*archive_map).map_err(|e| {
ExtractBundledLibsError::ArchiveMember { rlib, error: e.to_string() }
})?;
.map_err(|e| ExtractBundledLibsError::ReadEntry { rlib, error: Box::new(e) })?;
let data = entry
.data(&*archive_map)
.map_err(|e| ExtractBundledLibsError::ArchiveMember { rlib, error: Box::new(e) })?;
let name = std::str::from_utf8(entry.name())
.map_err(|e| ExtractBundledLibsError::ConvertName { rlib, error: e.to_string() })?;
.map_err(|e| ExtractBundledLibsError::ConvertName { rlib, error: Box::new(e) })?;
if !bundled_lib_file_names.contains(&Symbol::intern(name)) {
continue; // We need to extract only native libraries.
}
std::fs::write(&outdir.join(&name), data)
.map_err(|e| ExtractBundledLibsError::WriteFile { rlib, error: e.to_string() })?;
.map_err(|e| ExtractBundledLibsError::WriteFile { rlib, error: Box::new(e) })?;
}
Ok(())
}
Expand Down
14 changes: 7 additions & 7 deletions compiler/rustc_codegen_ssa/src/errors.rs
Original file line number Diff line number Diff line change
Expand Up @@ -488,25 +488,25 @@ pub struct OptionGccOnly;
#[derive(Diagnostic)]
pub enum ExtractBundledLibsError<'a> {
#[diag(codegen_ssa_extract_bundled_libs_open_file)]
OpenFile { rlib: &'a Path, error: String },
OpenFile { rlib: &'a Path, error: Box<dyn std::error::Error> },

#[diag(codegen_ssa_extract_bundled_libs_mmap_file)]
MmapFile { rlib: &'a Path, error: String },
MmapFile { rlib: &'a Path, error: Box<dyn std::error::Error> },

#[diag(codegen_ssa_extract_bundled_libs_parse_archive)]
ParseArchive { rlib: &'a Path, error: String },
ParseArchive { rlib: &'a Path, error: Box<dyn std::error::Error> },

#[diag(codegen_ssa_extract_bundled_libs_read_entry)]
ReadEntry { rlib: &'a Path, error: String },
ReadEntry { rlib: &'a Path, error: Box<dyn std::error::Error> },

#[diag(codegen_ssa_extract_bundled_libs_archive_member)]
ArchiveMember { rlib: &'a Path, error: String },
ArchiveMember { rlib: &'a Path, error: Box<dyn std::error::Error> },

#[diag(codegen_ssa_extract_bundled_libs_convert_name)]
ConvertName { rlib: &'a Path, error: String },
ConvertName { rlib: &'a Path, error: Box<dyn std::error::Error> },

#[diag(codegen_ssa_extract_bundled_libs_write_file)]
WriteFile { rlib: &'a Path, error: String },
WriteFile { rlib: &'a Path, error: Box<dyn std::error::Error> },
}

#[derive(Diagnostic)]
Expand Down
1 change: 1 addition & 0 deletions compiler/rustc_errors/src/diagnostic_impls.rs
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@ into_diagnostic_arg_using_display!(
i128,
u128,
std::io::Error,
std::boxed::Box<dyn std::error::Error>,
std::num::NonZeroU32,
hir::Target,
Edition,
Expand Down

0 comments on commit 540c3f9

Please sign in to comment.