1
Fork 0

Auto merge of #36821 - pweaver:master, r=michaelwoerister

#36821

I am just starting to learn rust. Feedback would be appreciated.
This commit is contained in:
bors 2016-10-03 15:04:41 -07:00 committed by GitHub
commit 9c31d76e97

View file

@ -234,10 +234,21 @@ pub fn prepare_session_directory(tcx: TyCtxt) -> Result<bool, ()> {
let print_file_copy_stats = tcx.sess.opts.debugging_opts.incremental_info;
// Try copying over all files from the source directory
if copy_files(&session_dir, &source_directory, print_file_copy_stats).is_ok() {
if let Ok(allows_links) = copy_files(&session_dir, &source_directory,
print_file_copy_stats) {
debug!("successfully copied data from: {}",
source_directory.display());
if !allows_links {
tcx.sess.warn(&format!("Hard linking files in the incremental \
compilation cache failed. Copying files \
instead. Consider moving the cache \
directory to a file system which supports \
hard linking in session dir `{}`",
session_dir.display())
);
}
tcx.sess.init_incr_comp_session(session_dir, directory_lock);
return Ok(true)
} else {
@ -357,7 +368,7 @@ pub fn delete_all_session_dir_contents(sess: &Session) -> io::Result<()> {
fn copy_files(target_dir: &Path,
source_dir: &Path,
print_stats_on_success: bool)
-> Result<(), ()> {
-> Result<bool, ()> {
// We acquire a shared lock on the lock file of the directory, so that
// nobody deletes it out from under us while we are reading from it.
let lock_file_path = lock_file_path(source_dir);
@ -409,7 +420,7 @@ fn copy_files(target_dir: &Path,
println!("incr. comp. session directory: {} files copied", files_copied);
}
Ok(())
Ok(files_linked > 0 || files_copied == 0)
}
/// Generate unique directory path of the form: