about summary refs log tree commit diff
diff options
context:
space:
mode:
authorNiko Matsakis <niko@alum.mit.edu>2017-04-13 18:08:36 -0400
committerNiko Matsakis <niko@alum.mit.edu>2017-04-13 18:37:47 -0400
commitf2487b81523a4f39a5ad27a9d28b198e4cc4dfda (patch)
tree98c272a23f7a2554bcf5ab9c4bdb4b909bfcf40f
parent8e26983c86c6e6a51c85e1bd5c4621f3b43afe99 (diff)
downloadrust-f2487b81523a4f39a5ad27a9d28b198e4cc4dfda.tar.gz
rust-f2487b81523a4f39a5ad27a9d28b198e4cc4dfda.zip
refactor `metadata_symbol_name`
-rw-r--r--src/librustc_trans/back/symbol_export.rs9
-rw-r--r--src/librustc_trans/base.rs2
-rw-r--r--src/librustc_trans/context.rs8
3 files changed, 10 insertions, 9 deletions
diff --git a/src/librustc_trans/back/symbol_export.rs b/src/librustc_trans/back/symbol_export.rs
index 04617edf4a7..5d6717272fd 100644
--- a/src/librustc_trans/back/symbol_export.rs
+++ b/src/librustc_trans/back/symbol_export.rs
@@ -15,6 +15,7 @@ use back::symbol_names::symbol_name;
 use util::nodemap::FxHashMap;
 use rustc::hir::def_id::{DefId, CrateNum, LOCAL_CRATE};
 use rustc::session::config;
+use rustc::ty::TyCtxt;
 use syntax::attr;
 use trans_item::TransItem;
 
@@ -72,7 +73,7 @@ impl ExportedSymbols {
         }
 
         if scx.sess().crate_types.borrow().contains(&config::CrateTypeDylib) {
-            local_crate.push((scx.metadata_symbol_name(),
+            local_crate.push((metadata_symbol_name(scx.tcx()),
                               SymbolExportLevel::Rust));
         }
 
@@ -173,6 +174,12 @@ impl ExportedSymbols {
     }
 }
 
+pub fn metadata_symbol_name(tcx: TyCtxt) -> String {
+    format!("rust_metadata_{}_{}",
+            tcx.crate_name(LOCAL_CRATE),
+            tcx.crate_disambiguator(LOCAL_CRATE))
+}
+
 pub fn crate_export_threshold(crate_type: config::CrateType)
                                      -> SymbolExportLevel {
     match crate_type {
diff --git a/src/librustc_trans/base.rs b/src/librustc_trans/base.rs
index 3fd966eb73e..b364814d07e 100644
--- a/src/librustc_trans/base.rs
+++ b/src/librustc_trans/base.rs
@@ -776,7 +776,7 @@ fn write_metadata(cx: &SharedCrateContext,
 
     let llmeta = C_bytes_in_context(metadata_llcx, &compressed);
     let llconst = C_struct_in_context(metadata_llcx, &[llmeta], false);
-    let name = cx.metadata_symbol_name();
+    let name = symbol_export::metadata_symbol_name(cx.tcx());
     let buf = CString::new(name).unwrap();
     let llglobal = unsafe {
         llvm::LLVMAddGlobal(metadata_llmod, val_ty(llconst).to_ref(), buf.as_ptr())
diff --git a/src/librustc_trans/context.rs b/src/librustc_trans/context.rs
index 7e49dee498d..c3770470bfd 100644
--- a/src/librustc_trans/context.rs
+++ b/src/librustc_trans/context.rs
@@ -12,7 +12,7 @@ use llvm;
 use llvm::{ContextRef, ModuleRef, ValueRef};
 use rustc::dep_graph::{DepGraph, DepGraphSafe, DepNode, DepTrackingMap, DepTrackingMapConfig};
 use rustc::hir;
-use rustc::hir::def_id::{DefId, LOCAL_CRATE};
+use rustc::hir::def_id::DefId;
 use rustc::traits;
 use debuginfo;
 use callee;
@@ -430,12 +430,6 @@ impl<'b, 'tcx> SharedCrateContext<'b, 'tcx> {
     pub fn translation_items(&self) -> &RefCell<FxHashSet<TransItem<'tcx>>> {
         &self.translation_items
     }
-
-    pub fn metadata_symbol_name(&self) -> String {
-        format!("rust_metadata_{}_{}",
-                self.tcx().crate_name(LOCAL_CRATE),
-                self.tcx().crate_disambiguator(LOCAL_CRATE))
-    }
 }
 
 impl<'tcx> LocalCrateContext<'tcx> {