Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion Cargo.lock
Original file line number Diff line number Diff line change
Expand Up @@ -4392,7 +4392,6 @@ dependencies = [
"rustc_fs_util",
"rustc_hir",
"rustc_hir_pretty",
"rustc_incremental",
"rustc_index",
"rustc_macros",
"rustc_middle",
Expand Down
18 changes: 10 additions & 8 deletions compiler/rustc_codegen_ssa/src/back/write.rs
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,7 @@ use rustc_errors::{
};
use rustc_fs_util::link_or_copy;
use rustc_hir::find_attr;
use rustc_incremental::{
copy_cgu_workproduct_to_incr_comp_cache_dir, in_incr_comp_dir, in_incr_comp_dir_sess,
};
use rustc_incremental::{copy_cgu_workproduct_to_incr_comp_cache_dir, in_incr_comp_dir_sess};
use rustc_macros::{Decodable, Encodable};
use rustc_metadata::fs::copy_to_stdout;
use rustc_middle::bug;
Expand Down Expand Up @@ -884,20 +882,24 @@ fn execute_copy_from_cache_work_item(
let mut links_from_incr_cache = Vec::new();

let mut load_from_incr_comp_dir = |output_path: PathBuf, saved_path: &str| {
let source_file = in_incr_comp_dir(incr_comp_session_dir, saved_path);
let source_file_in_incr_comp_dir = incr_comp_session_dir.join(saved_path);
debug!(
"copying preexisting module `{}` from {:?} to {}",
module.name,
source_file,
source_file_in_incr_comp_dir,
output_path.display()
);
match link_or_copy(&source_file, &output_path) {
match link_or_copy(&source_file_in_incr_comp_dir, &output_path) {
Ok(_) => {
links_from_incr_cache.push(source_file);
links_from_incr_cache.push(source_file_in_incr_comp_dir);
Some(output_path)
}
Err(error) => {
dcx.emit_err(errors::CopyPathBuf { source_file, output_path, error });
dcx.emit_err(errors::CopyPathBuf {
source_file: source_file_in_incr_comp_dir,
output_path,
error,
});
None
}
}
Expand Down
4 changes: 2 additions & 2 deletions compiler/rustc_incremental/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@ mod diagnostics;
mod persist;

pub use persist::{
copy_cgu_workproduct_to_incr_comp_cache_dir, finalize_session_directory, in_incr_comp_dir,
in_incr_comp_dir_sess, load_query_result_cache, save_work_product_index, setup_dep_graph,
copy_cgu_workproduct_to_incr_comp_cache_dir, finalize_session_directory, in_incr_comp_dir_sess,
load_query_result_cache, save_work_product_index, setup_dep_graph,
};
use rustc_middle::util::Providers;

Expand Down
10 changes: 1 addition & 9 deletions compiler/rustc_incremental/src/persist/fs.rs
Original file line number Diff line number Diff line change
Expand Up @@ -184,15 +184,7 @@ fn lock_file_path(session_dir: &Path) -> PathBuf {
/// Returns the path for a given filename within the incremental compilation directory
/// in the current session.
pub fn in_incr_comp_dir_sess(sess: &Session, file_name: &str) -> PathBuf {
in_incr_comp_dir(&sess.incr_comp_session_dir(), file_name)
}

/// Returns the path for a given filename within the incremental compilation directory,
/// not necessarily from the current session.
///
/// To ensure the file is part of the current session, use [`in_incr_comp_dir_sess`].
pub fn in_incr_comp_dir(incr_comp_session_dir: &Path, file_name: &str) -> PathBuf {
incr_comp_session_dir.join(file_name)
sess.incr_comp_session_dir().join(file_name)
}

/// Allocates the private session directory.
Expand Down
2 changes: 1 addition & 1 deletion compiler/rustc_incremental/src/persist/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ mod load;
mod save;
mod work_product;

pub use fs::{finalize_session_directory, in_incr_comp_dir, in_incr_comp_dir_sess};
pub use fs::{finalize_session_directory, in_incr_comp_dir_sess};
pub use load::{load_query_result_cache, setup_dep_graph};
pub(crate) use save::save_dep_graph;
pub use save::save_work_product_index;
Expand Down
1 change: 0 additions & 1 deletion compiler/rustc_metadata/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@ rustc_feature = { path = "../rustc_feature" }
rustc_fs_util = { path = "../rustc_fs_util" }
rustc_hir = { path = "../rustc_hir" }
rustc_hir_pretty = { path = "../rustc_hir_pretty" }
rustc_incremental = { path = "../rustc_incremental" }
rustc_index = { path = "../rustc_index" }
rustc_macros = { path = "../rustc_macros" }
rustc_middle = { path = "../rustc_middle" }
Expand Down
8 changes: 4 additions & 4 deletions compiler/rustc_metadata/src/rmeta/encoder.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2472,10 +2472,10 @@ pub fn encode_metadata(tcx: TyCtxt<'_>, path: &Path, ref_path: Option<&Path>) {
&& tcx.dep_graph.try_mark_green(tcx, &dep_node).is_some()
{
let saved_path = &work_product.saved_files["rmeta"];
let incr_comp_session_dir = tcx.sess.incr_comp_session_dir_opt().unwrap();
let source_file = rustc_incremental::in_incr_comp_dir(&incr_comp_session_dir, saved_path);
debug!("copying preexisting metadata from {source_file:?} to {path:?}");
match rustc_fs_util::link_or_copy(&source_file, path) {
let incr_comp_session_dir = tcx.sess.incr_comp_session_dir();
let source_file_in_incr_dir = &incr_comp_session_dir.join(saved_path);
debug!("copying preexisting metadata from {source_file_in_incr_dir:?} to {path:?}");
match rustc_fs_util::link_or_copy(&source_file_in_incr_dir, path) {
Ok(_) => {}
Err(err) => tcx.dcx().emit_fatal(FailCreateFileEncoder { err }),
};
Expand Down
Loading