Factor Option out of copy_cgu_workproduct_to_incr_comp_cache_dir call
This improves clarity of the code a bit
This commit is contained in:
parent
065e202b56
commit
906b85157c
3 changed files with 20 additions and 28 deletions
|
@ -66,11 +66,7 @@ fn emit_module(
|
||||||
let work_product = if backend_config.disable_incr_cache {
|
let work_product = if backend_config.disable_incr_cache {
|
||||||
None
|
None
|
||||||
} else {
|
} else {
|
||||||
rustc_incremental::copy_cgu_workproduct_to_incr_comp_cache_dir(
|
rustc_incremental::copy_cgu_workproduct_to_incr_comp_cache_dir(tcx.sess, &name, &tmp_file)
|
||||||
tcx.sess,
|
|
||||||
&name,
|
|
||||||
Some(&tmp_file),
|
|
||||||
)
|
|
||||||
};
|
};
|
||||||
|
|
||||||
ModuleCodegenResult(
|
ModuleCodegenResult(
|
||||||
|
|
|
@ -494,12 +494,12 @@ fn copy_all_cgu_workproducts_to_incr_comp_cache_dir(
|
||||||
let _timer = sess.timer("copy_all_cgu_workproducts_to_incr_comp_cache_dir");
|
let _timer = sess.timer("copy_all_cgu_workproducts_to_incr_comp_cache_dir");
|
||||||
|
|
||||||
for module in compiled_modules.modules.iter().filter(|m| m.kind == ModuleKind::Regular) {
|
for module in compiled_modules.modules.iter().filter(|m| m.kind == ModuleKind::Regular) {
|
||||||
let path = module.object.as_deref();
|
if let Some(path) = &module.object {
|
||||||
|
if let Some((id, product)) =
|
||||||
if let Some((id, product)) =
|
copy_cgu_workproduct_to_incr_comp_cache_dir(sess, &module.name, path)
|
||||||
copy_cgu_workproduct_to_incr_comp_cache_dir(sess, &module.name, path)
|
{
|
||||||
{
|
work_products.insert(id, product);
|
||||||
work_products.insert(id, product);
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -13,28 +13,24 @@ use std::path::Path;
|
||||||
pub fn copy_cgu_workproduct_to_incr_comp_cache_dir(
|
pub fn copy_cgu_workproduct_to_incr_comp_cache_dir(
|
||||||
sess: &Session,
|
sess: &Session,
|
||||||
cgu_name: &str,
|
cgu_name: &str,
|
||||||
path: Option<&Path>,
|
path: &Path,
|
||||||
) -> Option<(WorkProductId, WorkProduct)> {
|
) -> Option<(WorkProductId, WorkProduct)> {
|
||||||
debug!("copy_cgu_workproduct_to_incr_comp_cache_dir({:?},{:?})", cgu_name, path);
|
debug!("copy_cgu_workproduct_to_incr_comp_cache_dir({:?},{:?})", cgu_name, path);
|
||||||
sess.opts.incremental.as_ref()?;
|
sess.opts.incremental.as_ref()?;
|
||||||
|
|
||||||
let saved_file = if let Some(path) = path {
|
let file_name = format!("{}.o", cgu_name);
|
||||||
let file_name = format!("{}.o", cgu_name);
|
let path_in_incr_dir = in_incr_comp_dir_sess(sess, &file_name);
|
||||||
let path_in_incr_dir = in_incr_comp_dir_sess(sess, &file_name);
|
let saved_file = match link_or_copy(path, &path_in_incr_dir) {
|
||||||
match link_or_copy(path, &path_in_incr_dir) {
|
Ok(_) => Some(file_name),
|
||||||
Ok(_) => Some(file_name),
|
Err(err) => {
|
||||||
Err(err) => {
|
sess.warn(&format!(
|
||||||
sess.warn(&format!(
|
"error copying object file `{}` to incremental directory as `{}`: {}",
|
||||||
"error copying object file `{}` to incremental directory as `{}`: {}",
|
path.display(),
|
||||||
path.display(),
|
path_in_incr_dir.display(),
|
||||||
path_in_incr_dir.display(),
|
err
|
||||||
err
|
));
|
||||||
));
|
return None;
|
||||||
return None;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
None
|
|
||||||
};
|
};
|
||||||
|
|
||||||
let work_product = WorkProduct { cgu_name: cgu_name.to_string(), saved_file };
|
let work_product = WorkProduct { cgu_name: cgu_name.to_string(), saved_file };
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue