about summary refs log tree commit diff
diff options
context:
space:
mode:
authorVadim Petrochenkov <vadim.petrochenkov@gmail.com>2019-11-23 23:13:54 +0300
committerVadim Petrochenkov <vadim.petrochenkov@gmail.com>2019-11-28 20:59:56 +0300
commit32aa58c96bf7d61c03838f9ec75f3e4d26974832 (patch)
tree219ae6dae310898f0713327c2e1b32070129b2b1
parente2414852b1c65bc819869cf9cb5328158d3ff369 (diff)
downloadrust-32aa58c96bf7d61c03838f9ec75f3e4d26974832.tar.gz
rust-32aa58c96bf7d61c03838f9ec75f3e4d26974832.zip
rustc_metadata: Privatize `CrateMetadata::source`
-rw-r--r--src/librustc_metadata/creader.rs10
-rw-r--r--src/librustc_metadata/rmeta/decoder.rs6
2 files changed, 10 insertions, 6 deletions
diff --git a/src/librustc_metadata/creader.rs b/src/librustc_metadata/creader.rs
index 32548081e62..31d783f4afc 100644
--- a/src/librustc_metadata/creader.rs
+++ b/src/librustc_metadata/creader.rs
@@ -51,10 +51,10 @@ fn dump_crates(cstore: &CStore) {
         info!("  cnum: {}", cnum);
         info!("  hash: {}", data.root.hash);
         info!("  reqd: {:?}", *data.dep_kind.lock());
-        let CrateSource { dylib, rlib, rmeta } = data.source.clone();
-        dylib.map(|dl| info!("  dylib: {}", dl.0.display()));
-        rlib.map(|rl|  info!("   rlib: {}", rl.0.display()));
-        rmeta.map(|rl| info!("   rmeta: {}", rl.0.display()));
+        let CrateSource { dylib, rlib, rmeta } = data.source();
+        dylib.as_ref().map(|dl| info!("  dylib: {}", dl.0.display()));
+        rlib.as_ref().map(|rl|  info!("   rlib: {}", rl.0.display()));
+        rmeta.as_ref().map(|rl| info!("   rmeta: {}", rl.0.display()));
     });
 }
 
@@ -118,7 +118,7 @@ impl<'a> CrateLoader<'a> {
             // We're also sure to compare *paths*, not actual byte slices. The
             // `source` stores paths which are normalized which may be different
             // from the strings on the command line.
-            let source = &self.cstore.get_crate_data(cnum).source;
+            let source = self.cstore.get_crate_data(cnum).source();
             if let Some(entry) = self.sess.opts.externs.get(&name.as_str()) {
                 // Only use `--extern crate_name=path` here, not `--extern crate_name`.
                 let found = entry.locations.iter().filter_map(|l| l.as_ref()).any(|l| {
diff --git a/src/librustc_metadata/rmeta/decoder.rs b/src/librustc_metadata/rmeta/decoder.rs
index 595c6bcf425..748cfb6a23a 100644
--- a/src/librustc_metadata/rmeta/decoder.rs
+++ b/src/librustc_metadata/rmeta/decoder.rs
@@ -101,7 +101,7 @@ crate struct CrateMetadata {
     /// How to link (or not link) this crate to the currently compiled crate.
     crate dep_kind: Lock<DepKind>,
     /// Filesystem location of this crate.
-    crate source: CrateSource,
+    source: CrateSource,
     /// Whether or not this crate should be consider a private dependency
     /// for purposes of the 'exported_private_dependencies' lint
     private_dep: bool,
@@ -1534,6 +1534,10 @@ impl<'a, 'tcx> CrateMetadata {
         }
         update
     }
+
+    crate fn source(&self) -> &CrateSource {
+        &self.source
+    }
 }
 
 // Cannot be implemented on 'ProcMacro', as libproc_macro