]> git.lizzy.rs Git - rust.git/commitdiff
make the filename computation take a cratenum
authorNiko Matsakis <niko@alum.mit.edu>
Wed, 6 Apr 2016 21:54:40 +0000 (17:54 -0400)
committerNiko Matsakis <niko@alum.mit.edu>
Wed, 18 May 2016 14:11:35 +0000 (10:11 -0400)
src/librustc_incremental/persist/save.rs
src/librustc_incremental/persist/util.rs

index 40191cf758dff6a73efad3c4ad328345568732d5..868f2ee4244aaa9540b455043e5d4168cc77ccd3 100644 (file)
@@ -10,6 +10,7 @@
 
 use rbml::opaque::Encoder;
 use rustc::dep_graph::DepNode;
+use rustc::middle::cstore::LOCAL_CRATE;
 use rustc::ty::TyCtxt;
 use rustc_serialize::{Encodable as RustcEncodable};
 use std::hash::{Hasher, SipHasher};
@@ -25,7 +26,7 @@ pub fn save_dep_graph<'a, 'tcx>(tcx: TyCtxt<'a, 'tcx, 'tcx>) {
     let _ignore = tcx.dep_graph.in_ignore();
 
     save_in(tcx, dep_graph_path(tcx), encode_dep_graph);
-    save_in(tcx, metadata_hash_path(tcx), encode_metadata_hashes);
+    save_in(tcx, metadata_hash_path(tcx, LOCAL_CRATE), encode_metadata_hashes);
 }
 
 fn save_in<'a,'tcx,F>(tcx: TyCtxt<'a, 'tcx, 'tcx>, opt_path_buf: Option<PathBuf>, encode: F)
index 8a345583123705ac673d1d13e89458146ad931ec..7acfdb5fffe931c74a6bbe2e5aed69592dee1c25 100644 (file)
 
 use std::fs;
 use std::io;
-use std::path::{PathBuf, Path};
+use std::path::{Path, PathBuf};
+use syntax::ast;
 
 pub fn dep_graph_path(tcx: TyCtxt) -> Option<PathBuf> {
-    path(tcx, "local")
+    path(tcx, LOCAL_CRATE, "local")
 }
 
-pub fn metadata_hash_path(tcx: TyCtxt) -> Option<PathBuf> {
-    path(tcx, "metadata")
+pub fn metadata_hash_path(tcx: TyCtxt, cnum: ast::CrateNum) -> Option<PathBuf> {
+    path(tcx, cnum, "metadata")
 }
 
-fn path(tcx: TyCtxt, suffix: &str) -> Option<PathBuf> {
+fn path(tcx: TyCtxt, cnum: ast::CrateNum, suffix: &str) -> Option<PathBuf> {
     // For now, just save/load dep-graph from
     // directory/dep_graph.rbml
     tcx.sess.opts.incremental.as_ref().and_then(|incr_dir| {
@@ -40,8 +41,8 @@ fn path(tcx: TyCtxt, suffix: &str) -> Option<PathBuf> {
             }
         }
 
-        let crate_name = tcx.crate_name(LOCAL_CRATE);
-        let crate_disambiguator = tcx.crate_disambiguator(LOCAL_CRATE);
+        let crate_name = tcx.crate_name(cnum);
+        let crate_disambiguator = tcx.crate_disambiguator(cnum);
         let file_name = format!("{}-{}.{}.bin",
                                 crate_name,
                                 crate_disambiguator,