Make saved_file field of WorkProduct non-optional
A WorkProduct without a saved file is useless
This commit is contained in:
parent
906b85157c
commit
e16c3b4a44
6 changed files with 51 additions and 69 deletions
|
@ -162,18 +162,16 @@ pub fn load_dep_graph(sess: &Session) -> DepGraphFuture {
|
|||
|
||||
for swp in work_products {
|
||||
let mut all_files_exist = true;
|
||||
if let Some(ref file_name) = swp.work_product.saved_file {
|
||||
let path = in_incr_comp_dir_sess(sess, file_name);
|
||||
if !path.exists() {
|
||||
all_files_exist = false;
|
||||
let path = in_incr_comp_dir_sess(sess, &swp.work_product.saved_file);
|
||||
if !path.exists() {
|
||||
all_files_exist = false;
|
||||
|
||||
if sess.opts.debugging_opts.incremental_info {
|
||||
eprintln!(
|
||||
"incremental: could not find file for work \
|
||||
if sess.opts.debugging_opts.incremental_info {
|
||||
eprintln!(
|
||||
"incremental: could not find file for work \
|
||||
product: {}",
|
||||
path.display()
|
||||
);
|
||||
}
|
||||
path.display()
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -107,11 +107,7 @@ pub fn save_work_product_index(
|
|||
for (id, wp) in previous_work_products.iter() {
|
||||
if !new_work_products.contains_key(id) {
|
||||
work_product::delete_workproduct_files(sess, wp);
|
||||
debug_assert!(
|
||||
wp.saved_file.as_ref().map_or(true, |file_name| {
|
||||
!in_incr_comp_dir_sess(sess, &file_name).exists()
|
||||
})
|
||||
);
|
||||
debug_assert!(!in_incr_comp_dir_sess(sess, &wp.saved_file).exists());
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -119,8 +115,7 @@ pub fn save_work_product_index(
|
|||
debug_assert!({
|
||||
new_work_products
|
||||
.iter()
|
||||
.flat_map(|(_, wp)| wp.saved_file.iter())
|
||||
.map(|name| in_incr_comp_dir_sess(sess, name))
|
||||
.map(|(_, wp)| in_incr_comp_dir_sess(sess, &wp.saved_file))
|
||||
.all(|path| path.exists())
|
||||
});
|
||||
}
|
||||
|
|
|
@ -21,7 +21,7 @@ pub fn copy_cgu_workproduct_to_incr_comp_cache_dir(
|
|||
let file_name = format!("{}.o", cgu_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) {
|
||||
Ok(_) => Some(file_name),
|
||||
Ok(_) => file_name,
|
||||
Err(err) => {
|
||||
sess.warn(&format!(
|
||||
"error copying object file `{}` to incremental directory as `{}`: {}",
|
||||
|
@ -41,17 +41,15 @@ pub fn copy_cgu_workproduct_to_incr_comp_cache_dir(
|
|||
|
||||
/// Removes files for a given work product.
|
||||
pub fn delete_workproduct_files(sess: &Session, work_product: &WorkProduct) {
|
||||
if let Some(ref file_name) = work_product.saved_file {
|
||||
let path = in_incr_comp_dir_sess(sess, file_name);
|
||||
match std_fs::remove_file(&path) {
|
||||
Ok(()) => {}
|
||||
Err(err) => {
|
||||
sess.warn(&format!(
|
||||
"file-system error deleting outdated file `{}`: {}",
|
||||
path.display(),
|
||||
err
|
||||
));
|
||||
}
|
||||
let path = in_incr_comp_dir_sess(sess, &work_product.saved_file);
|
||||
match std_fs::remove_file(&path) {
|
||||
Ok(()) => {}
|
||||
Err(err) => {
|
||||
sess.warn(&format!(
|
||||
"file-system error deleting outdated file `{}`: {}",
|
||||
path.display(),
|
||||
err
|
||||
));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue