Rollup merge of #53465 - bjorn3:remove_link_meta_struct, r=varkor
Remove LinkMeta struct Fixes #53291
This commit is contained in:
commit
5d4a25da05
10 changed files with 25 additions and 53 deletions
|
@ -42,11 +42,6 @@ pub use self::NativeLibraryKind::*;
|
||||||
|
|
||||||
// lonely orphan structs and enums looking for a better home
|
// lonely orphan structs and enums looking for a better home
|
||||||
|
|
||||||
#[derive(Clone, Debug, Copy)]
|
|
||||||
pub struct LinkMeta {
|
|
||||||
pub crate_hash: Svh,
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Where a crate came from on the local filesystem. One of these three options
|
/// Where a crate came from on the local filesystem. One of these three options
|
||||||
/// must be non-None.
|
/// must be non-None.
|
||||||
#[derive(PartialEq, Clone, Debug)]
|
#[derive(PartialEq, Clone, Debug)]
|
||||||
|
@ -233,8 +228,7 @@ pub trait CrateStore {
|
||||||
|
|
||||||
// utility functions
|
// utility functions
|
||||||
fn encode_metadata<'a, 'tcx>(&self,
|
fn encode_metadata<'a, 'tcx>(&self,
|
||||||
tcx: TyCtxt<'a, 'tcx, 'tcx>,
|
tcx: TyCtxt<'a, 'tcx, 'tcx>)
|
||||||
link_meta: &LinkMeta)
|
|
||||||
-> EncodedMetadata;
|
-> EncodedMetadata;
|
||||||
fn metadata_encoding_version(&self) -> &[u8];
|
fn metadata_encoding_version(&self) -> &[u8];
|
||||||
}
|
}
|
||||||
|
|
|
@ -26,7 +26,7 @@ use lint::{self, Lint};
|
||||||
use ich::{StableHashingContext, NodeIdHashingMode};
|
use ich::{StableHashingContext, NodeIdHashingMode};
|
||||||
use infer::canonical::{CanonicalVarInfo, CanonicalVarInfos};
|
use infer::canonical::{CanonicalVarInfo, CanonicalVarInfos};
|
||||||
use infer::outlives::free_region_map::FreeRegionMap;
|
use infer::outlives::free_region_map::FreeRegionMap;
|
||||||
use middle::cstore::{CrateStoreDyn, LinkMeta};
|
use middle::cstore::CrateStoreDyn;
|
||||||
use middle::cstore::EncodedMetadata;
|
use middle::cstore::EncodedMetadata;
|
||||||
use middle::lang_items;
|
use middle::lang_items;
|
||||||
use middle::resolve_lifetime::{self, ObjectLifetimeDefault};
|
use middle::resolve_lifetime::{self, ObjectLifetimeDefault};
|
||||||
|
@ -1490,10 +1490,10 @@ impl<'a, 'gcx, 'tcx> TyCtxt<'a, 'gcx, 'tcx> {
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<'a, 'tcx> TyCtxt<'a, 'tcx, 'tcx> {
|
impl<'a, 'tcx> TyCtxt<'a, 'tcx, 'tcx> {
|
||||||
pub fn encode_metadata(self, link_meta: &LinkMeta)
|
pub fn encode_metadata(self)
|
||||||
-> EncodedMetadata
|
-> EncodedMetadata
|
||||||
{
|
{
|
||||||
self.cstore.encode_metadata(self, link_meta)
|
self.cstore.encode_metadata(self)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -47,8 +47,7 @@ use std::str;
|
||||||
use syntax::attr;
|
use syntax::attr;
|
||||||
|
|
||||||
pub use rustc_codegen_utils::link::{find_crate_name, filename_for_input, default_output_for_target,
|
pub use rustc_codegen_utils::link::{find_crate_name, filename_for_input, default_output_for_target,
|
||||||
invalid_output_for_target, build_link_meta, out_filename,
|
invalid_output_for_target, out_filename, check_file_is_writeable};
|
||||||
check_file_is_writeable};
|
|
||||||
|
|
||||||
// The third parameter is for env vars, used on windows to set up the
|
// The third parameter is for env vars, used on windows to set up the
|
||||||
// path for MSVC to find its DLLs, and gcc to find its bundled
|
// path for MSVC to find its DLLs, and gcc to find its bundled
|
||||||
|
|
|
@ -19,7 +19,7 @@ use base;
|
||||||
use consts;
|
use consts;
|
||||||
use rustc_incremental::{copy_cgu_workproducts_to_incr_comp_cache_dir, in_incr_comp_dir};
|
use rustc_incremental::{copy_cgu_workproducts_to_incr_comp_cache_dir, in_incr_comp_dir};
|
||||||
use rustc::dep_graph::{WorkProduct, WorkProductId, WorkProductFileKind};
|
use rustc::dep_graph::{WorkProduct, WorkProductId, WorkProductFileKind};
|
||||||
use rustc::middle::cstore::{LinkMeta, EncodedMetadata};
|
use rustc::middle::cstore::EncodedMetadata;
|
||||||
use rustc::session::config::{self, OutputFilenames, OutputType, Passes, Sanitizer, Lto};
|
use rustc::session::config::{self, OutputFilenames, OutputType, Passes, Sanitizer, Lto};
|
||||||
use rustc::session::Session;
|
use rustc::session::Session;
|
||||||
use rustc::util::nodemap::FxHashMap;
|
use rustc::util::nodemap::FxHashMap;
|
||||||
|
@ -32,6 +32,7 @@ use rustc::ty::TyCtxt;
|
||||||
use rustc::util::common::{time_ext, time_depth, set_time_depth, print_time_passes_entry};
|
use rustc::util::common::{time_ext, time_depth, set_time_depth, print_time_passes_entry};
|
||||||
use rustc_fs_util::{path2cstr, link_or_copy};
|
use rustc_fs_util::{path2cstr, link_or_copy};
|
||||||
use rustc_data_structures::small_c_str::SmallCStr;
|
use rustc_data_structures::small_c_str::SmallCStr;
|
||||||
|
use rustc_data_structures::svh::Svh;
|
||||||
use errors::{self, Handler, Level, DiagnosticBuilder, FatalError, DiagnosticId};
|
use errors::{self, Handler, Level, DiagnosticBuilder, FatalError, DiagnosticId};
|
||||||
use errors::emitter::{Emitter};
|
use errors::emitter::{Emitter};
|
||||||
use syntax::attr;
|
use syntax::attr;
|
||||||
|
@ -912,13 +913,13 @@ fn need_crate_bitcode_for_rlib(sess: &Session) -> bool {
|
||||||
|
|
||||||
pub fn start_async_codegen(tcx: TyCtxt,
|
pub fn start_async_codegen(tcx: TyCtxt,
|
||||||
time_graph: Option<TimeGraph>,
|
time_graph: Option<TimeGraph>,
|
||||||
link: LinkMeta,
|
|
||||||
metadata: EncodedMetadata,
|
metadata: EncodedMetadata,
|
||||||
coordinator_receive: Receiver<Box<dyn Any + Send>>,
|
coordinator_receive: Receiver<Box<dyn Any + Send>>,
|
||||||
total_cgus: usize)
|
total_cgus: usize)
|
||||||
-> OngoingCodegen {
|
-> OngoingCodegen {
|
||||||
let sess = tcx.sess;
|
let sess = tcx.sess;
|
||||||
let crate_name = tcx.crate_name(LOCAL_CRATE);
|
let crate_name = tcx.crate_name(LOCAL_CRATE);
|
||||||
|
let crate_hash = tcx.crate_hash(LOCAL_CRATE);
|
||||||
let no_builtins = attr::contains_name(&tcx.hir.krate().attrs, "no_builtins");
|
let no_builtins = attr::contains_name(&tcx.hir.krate().attrs, "no_builtins");
|
||||||
let subsystem = attr::first_attr_value_str_by_name(&tcx.hir.krate().attrs,
|
let subsystem = attr::first_attr_value_str_by_name(&tcx.hir.krate().attrs,
|
||||||
"windows_subsystem");
|
"windows_subsystem");
|
||||||
|
@ -1037,7 +1038,7 @@ pub fn start_async_codegen(tcx: TyCtxt,
|
||||||
|
|
||||||
OngoingCodegen {
|
OngoingCodegen {
|
||||||
crate_name,
|
crate_name,
|
||||||
link,
|
crate_hash,
|
||||||
metadata,
|
metadata,
|
||||||
windows_subsystem,
|
windows_subsystem,
|
||||||
linker_info,
|
linker_info,
|
||||||
|
@ -2270,7 +2271,7 @@ impl SharedEmitterMain {
|
||||||
|
|
||||||
pub struct OngoingCodegen {
|
pub struct OngoingCodegen {
|
||||||
crate_name: Symbol,
|
crate_name: Symbol,
|
||||||
link: LinkMeta,
|
crate_hash: Svh,
|
||||||
metadata: EncodedMetadata,
|
metadata: EncodedMetadata,
|
||||||
windows_subsystem: Option<String>,
|
windows_subsystem: Option<String>,
|
||||||
linker_info: LinkerInfo,
|
linker_info: LinkerInfo,
|
||||||
|
@ -2321,7 +2322,7 @@ impl OngoingCodegen {
|
||||||
|
|
||||||
(CodegenResults {
|
(CodegenResults {
|
||||||
crate_name: self.crate_name,
|
crate_name: self.crate_name,
|
||||||
link: self.link,
|
crate_hash: self.crate_hash,
|
||||||
metadata: self.metadata,
|
metadata: self.metadata,
|
||||||
windows_subsystem: self.windows_subsystem,
|
windows_subsystem: self.windows_subsystem,
|
||||||
linker_info: self.linker_info,
|
linker_info: self.linker_info,
|
||||||
|
|
|
@ -29,7 +29,6 @@ use super::ModuleCodegen;
|
||||||
use super::ModuleKind;
|
use super::ModuleKind;
|
||||||
|
|
||||||
use abi;
|
use abi;
|
||||||
use back::link;
|
|
||||||
use back::write::{self, OngoingCodegen};
|
use back::write::{self, OngoingCodegen};
|
||||||
use llvm::{self, TypeKind, get_param};
|
use llvm::{self, TypeKind, get_param};
|
||||||
use metadata;
|
use metadata;
|
||||||
|
@ -42,7 +41,7 @@ use rustc::ty::{self, Ty, TyCtxt};
|
||||||
use rustc::ty::layout::{self, Align, TyLayout, LayoutOf};
|
use rustc::ty::layout::{self, Align, TyLayout, LayoutOf};
|
||||||
use rustc::ty::query::Providers;
|
use rustc::ty::query::Providers;
|
||||||
use rustc::dep_graph::{DepNode, DepConstructor};
|
use rustc::dep_graph::{DepNode, DepConstructor};
|
||||||
use rustc::middle::cstore::{self, LinkMeta, LinkagePreference};
|
use rustc::middle::cstore::{self, LinkagePreference};
|
||||||
use rustc::middle::exported_symbols;
|
use rustc::middle::exported_symbols;
|
||||||
use rustc::util::common::{time, print_time_passes_entry};
|
use rustc::util::common::{time, print_time_passes_entry};
|
||||||
use rustc::util::profiling::ProfileCategory;
|
use rustc::util::profiling::ProfileCategory;
|
||||||
|
@ -608,8 +607,7 @@ fn maybe_create_entry_wrapper(cx: &CodegenCx) {
|
||||||
}
|
}
|
||||||
|
|
||||||
fn write_metadata<'a, 'gcx>(tcx: TyCtxt<'a, 'gcx, 'gcx>,
|
fn write_metadata<'a, 'gcx>(tcx: TyCtxt<'a, 'gcx, 'gcx>,
|
||||||
llvm_module: &ModuleLlvm,
|
llvm_module: &ModuleLlvm)
|
||||||
link_meta: &LinkMeta)
|
|
||||||
-> EncodedMetadata {
|
-> EncodedMetadata {
|
||||||
use std::io::Write;
|
use std::io::Write;
|
||||||
use flate2::Compression;
|
use flate2::Compression;
|
||||||
|
@ -641,7 +639,7 @@ fn write_metadata<'a, 'gcx>(tcx: TyCtxt<'a, 'gcx, 'gcx>,
|
||||||
return EncodedMetadata::new();
|
return EncodedMetadata::new();
|
||||||
}
|
}
|
||||||
|
|
||||||
let metadata = tcx.encode_metadata(link_meta);
|
let metadata = tcx.encode_metadata();
|
||||||
if kind == MetadataKind::Uncompressed {
|
if kind == MetadataKind::Uncompressed {
|
||||||
return metadata;
|
return metadata;
|
||||||
}
|
}
|
||||||
|
@ -719,8 +717,6 @@ pub fn codegen_crate<'a, 'tcx>(tcx: TyCtxt<'a, 'tcx, 'tcx>,
|
||||||
tcx.sess.fatal("this compiler's LLVM does not support PGO");
|
tcx.sess.fatal("this compiler's LLVM does not support PGO");
|
||||||
}
|
}
|
||||||
|
|
||||||
let crate_hash = tcx.crate_hash(LOCAL_CRATE);
|
|
||||||
let link_meta = link::build_link_meta(crate_hash);
|
|
||||||
let cgu_name_builder = &mut CodegenUnitNameBuilder::new(tcx);
|
let cgu_name_builder = &mut CodegenUnitNameBuilder::new(tcx);
|
||||||
|
|
||||||
// Codegen the metadata.
|
// Codegen the metadata.
|
||||||
|
@ -732,7 +728,7 @@ pub fn codegen_crate<'a, 'tcx>(tcx: TyCtxt<'a, 'tcx, 'tcx>,
|
||||||
.to_string();
|
.to_string();
|
||||||
let metadata_llvm_module = ModuleLlvm::new(tcx.sess, &metadata_cgu_name);
|
let metadata_llvm_module = ModuleLlvm::new(tcx.sess, &metadata_cgu_name);
|
||||||
let metadata = time(tcx.sess, "write metadata", || {
|
let metadata = time(tcx.sess, "write metadata", || {
|
||||||
write_metadata(tcx, &metadata_llvm_module, &link_meta)
|
write_metadata(tcx, &metadata_llvm_module)
|
||||||
});
|
});
|
||||||
tcx.sess.profiler(|p| p.end_activity(ProfileCategory::Codegen));
|
tcx.sess.profiler(|p| p.end_activity(ProfileCategory::Codegen));
|
||||||
|
|
||||||
|
@ -754,7 +750,6 @@ pub fn codegen_crate<'a, 'tcx>(tcx: TyCtxt<'a, 'tcx, 'tcx>,
|
||||||
let ongoing_codegen = write::start_async_codegen(
|
let ongoing_codegen = write::start_async_codegen(
|
||||||
tcx,
|
tcx,
|
||||||
time_graph.clone(),
|
time_graph.clone(),
|
||||||
link_meta,
|
|
||||||
metadata,
|
metadata,
|
||||||
rx,
|
rx,
|
||||||
1);
|
1);
|
||||||
|
@ -789,7 +784,6 @@ pub fn codegen_crate<'a, 'tcx>(tcx: TyCtxt<'a, 'tcx, 'tcx>,
|
||||||
let ongoing_codegen = write::start_async_codegen(
|
let ongoing_codegen = write::start_async_codegen(
|
||||||
tcx,
|
tcx,
|
||||||
time_graph.clone(),
|
time_graph.clone(),
|
||||||
link_meta,
|
|
||||||
metadata,
|
metadata,
|
||||||
rx,
|
rx,
|
||||||
codegen_units.len());
|
codegen_units.len());
|
||||||
|
|
|
@ -88,6 +88,7 @@ use rustc::util::nodemap::{FxHashSet, FxHashMap};
|
||||||
use rustc::util::profiling::ProfileCategory;
|
use rustc::util::profiling::ProfileCategory;
|
||||||
use rustc_mir::monomorphize;
|
use rustc_mir::monomorphize;
|
||||||
use rustc_codegen_utils::codegen_backend::CodegenBackend;
|
use rustc_codegen_utils::codegen_backend::CodegenBackend;
|
||||||
|
use rustc_data_structures::svh::Svh;
|
||||||
|
|
||||||
mod diagnostics;
|
mod diagnostics;
|
||||||
|
|
||||||
|
@ -251,7 +252,7 @@ impl CodegenBackend for LlvmCodegenBackend {
|
||||||
|
|
||||||
// Now that we won't touch anything in the incremental compilation directory
|
// Now that we won't touch anything in the incremental compilation directory
|
||||||
// any more, we can finalize it (which involves renaming it)
|
// any more, we can finalize it (which involves renaming it)
|
||||||
rustc_incremental::finalize_session_directory(sess, ongoing_codegen.link.crate_hash);
|
rustc_incremental::finalize_session_directory(sess, ongoing_codegen.crate_hash);
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
@ -389,7 +390,7 @@ struct CodegenResults {
|
||||||
modules: Vec<CompiledModule>,
|
modules: Vec<CompiledModule>,
|
||||||
allocator_module: Option<CompiledModule>,
|
allocator_module: Option<CompiledModule>,
|
||||||
metadata_module: CompiledModule,
|
metadata_module: CompiledModule,
|
||||||
link: rustc::middle::cstore::LinkMeta,
|
crate_hash: Svh,
|
||||||
metadata: rustc::middle::cstore::EncodedMetadata,
|
metadata: rustc::middle::cstore::EncodedMetadata,
|
||||||
windows_subsystem: Option<String>,
|
windows_subsystem: Option<String>,
|
||||||
linker_info: back::linker::LinkerInfo,
|
linker_info: back::linker::LinkerInfo,
|
||||||
|
|
|
@ -44,7 +44,7 @@ use rustc::dep_graph::DepGraph;
|
||||||
use rustc_target::spec::Target;
|
use rustc_target::spec::Target;
|
||||||
use rustc_data_structures::fx::FxHashMap;
|
use rustc_data_structures::fx::FxHashMap;
|
||||||
use rustc_mir::monomorphize::collector;
|
use rustc_mir::monomorphize::collector;
|
||||||
use link::{build_link_meta, out_filename};
|
use link::out_filename;
|
||||||
|
|
||||||
pub use rustc_data_structures::sync::MetadataRef;
|
pub use rustc_data_structures::sync::MetadataRef;
|
||||||
|
|
||||||
|
@ -180,8 +180,7 @@ impl CodegenBackend for MetadataOnlyCodegenBackend {
|
||||||
}
|
}
|
||||||
tcx.sess.abort_if_errors();
|
tcx.sess.abort_if_errors();
|
||||||
|
|
||||||
let link_meta = build_link_meta(tcx.crate_hash(LOCAL_CRATE));
|
let metadata = tcx.encode_metadata();
|
||||||
let metadata = tcx.encode_metadata(&link_meta);
|
|
||||||
|
|
||||||
box OngoingCodegen {
|
box OngoingCodegen {
|
||||||
metadata: metadata,
|
metadata: metadata,
|
||||||
|
|
|
@ -10,8 +10,6 @@
|
||||||
|
|
||||||
use rustc::session::config::{self, OutputFilenames, Input, OutputType};
|
use rustc::session::config::{self, OutputFilenames, Input, OutputType};
|
||||||
use rustc::session::Session;
|
use rustc::session::Session;
|
||||||
use rustc::middle::cstore::LinkMeta;
|
|
||||||
use rustc_data_structures::svh::Svh;
|
|
||||||
use std::path::{Path, PathBuf};
|
use std::path::{Path, PathBuf};
|
||||||
use syntax::{ast, attr};
|
use syntax::{ast, attr};
|
||||||
use syntax_pos::Span;
|
use syntax_pos::Span;
|
||||||
|
@ -50,14 +48,6 @@ fn is_writeable(p: &Path) -> bool {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn build_link_meta(crate_hash: Svh) -> LinkMeta {
|
|
||||||
let r = LinkMeta {
|
|
||||||
crate_hash,
|
|
||||||
};
|
|
||||||
info!("{:?}", r);
|
|
||||||
return r;
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn find_crate_name(sess: Option<&Session>,
|
pub fn find_crate_name(sess: Option<&Session>,
|
||||||
attrs: &[ast::Attribute],
|
attrs: &[ast::Attribute],
|
||||||
input: &Input) -> String {
|
input: &Input) -> String {
|
||||||
|
|
|
@ -17,7 +17,6 @@ use schema;
|
||||||
|
|
||||||
use rustc::ty::query::QueryConfig;
|
use rustc::ty::query::QueryConfig;
|
||||||
use rustc::middle::cstore::{CrateStore, DepKind,
|
use rustc::middle::cstore::{CrateStore, DepKind,
|
||||||
LinkMeta,
|
|
||||||
EncodedMetadata, NativeLibraryKind};
|
EncodedMetadata, NativeLibraryKind};
|
||||||
use rustc::middle::exported_symbols::ExportedSymbol;
|
use rustc::middle::exported_symbols::ExportedSymbol;
|
||||||
use rustc::middle::stability::DeprecationEntry;
|
use rustc::middle::stability::DeprecationEntry;
|
||||||
|
@ -567,11 +566,10 @@ impl CrateStore for cstore::CStore {
|
||||||
}
|
}
|
||||||
|
|
||||||
fn encode_metadata<'a, 'tcx>(&self,
|
fn encode_metadata<'a, 'tcx>(&self,
|
||||||
tcx: TyCtxt<'a, 'tcx, 'tcx>,
|
tcx: TyCtxt<'a, 'tcx, 'tcx>)
|
||||||
link_meta: &LinkMeta)
|
|
||||||
-> EncodedMetadata
|
-> EncodedMetadata
|
||||||
{
|
{
|
||||||
encoder::encode_metadata(tcx, link_meta)
|
encoder::encode_metadata(tcx)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn metadata_encoding_version(&self) -> &[u8]
|
fn metadata_encoding_version(&self) -> &[u8]
|
||||||
|
|
|
@ -13,7 +13,7 @@ use index_builder::{FromId, IndexBuilder, Untracked};
|
||||||
use isolated_encoder::IsolatedEncoder;
|
use isolated_encoder::IsolatedEncoder;
|
||||||
use schema::*;
|
use schema::*;
|
||||||
|
|
||||||
use rustc::middle::cstore::{LinkMeta, LinkagePreference, NativeLibrary,
|
use rustc::middle::cstore::{LinkagePreference, NativeLibrary,
|
||||||
EncodedMetadata, ForeignModule};
|
EncodedMetadata, ForeignModule};
|
||||||
use rustc::hir::def::CtorKind;
|
use rustc::hir::def::CtorKind;
|
||||||
use rustc::hir::def_id::{CrateNum, CRATE_DEF_INDEX, DefIndex, DefId, LocalDefId, LOCAL_CRATE};
|
use rustc::hir::def_id::{CrateNum, CRATE_DEF_INDEX, DefIndex, DefId, LocalDefId, LOCAL_CRATE};
|
||||||
|
@ -52,7 +52,6 @@ use rustc::hir::intravisit;
|
||||||
pub struct EncodeContext<'a, 'tcx: 'a> {
|
pub struct EncodeContext<'a, 'tcx: 'a> {
|
||||||
opaque: opaque::Encoder,
|
opaque: opaque::Encoder,
|
||||||
pub tcx: TyCtxt<'a, 'tcx, 'tcx>,
|
pub tcx: TyCtxt<'a, 'tcx, 'tcx>,
|
||||||
link_meta: &'a LinkMeta,
|
|
||||||
|
|
||||||
lazy_state: LazyState,
|
lazy_state: LazyState,
|
||||||
type_shorthands: FxHashMap<Ty<'tcx>, usize>,
|
type_shorthands: FxHashMap<Ty<'tcx>, usize>,
|
||||||
|
@ -482,7 +481,6 @@ impl<'a, 'tcx> EncodeContext<'a, 'tcx> {
|
||||||
let index_bytes = self.position() - i;
|
let index_bytes = self.position() - i;
|
||||||
|
|
||||||
let attrs = tcx.hir.krate_attrs();
|
let attrs = tcx.hir.krate_attrs();
|
||||||
let link_meta = self.link_meta;
|
|
||||||
let is_proc_macro = tcx.sess.crate_types.borrow().contains(&CrateType::ProcMacro);
|
let is_proc_macro = tcx.sess.crate_types.borrow().contains(&CrateType::ProcMacro);
|
||||||
let has_default_lib_allocator = attr::contains_name(&attrs, "default_lib_allocator");
|
let has_default_lib_allocator = attr::contains_name(&attrs, "default_lib_allocator");
|
||||||
let has_global_allocator = *tcx.sess.has_global_allocator.get();
|
let has_global_allocator = *tcx.sess.has_global_allocator.get();
|
||||||
|
@ -491,7 +489,7 @@ impl<'a, 'tcx> EncodeContext<'a, 'tcx> {
|
||||||
name: tcx.crate_name(LOCAL_CRATE),
|
name: tcx.crate_name(LOCAL_CRATE),
|
||||||
extra_filename: tcx.sess.opts.cg.extra_filename.clone(),
|
extra_filename: tcx.sess.opts.cg.extra_filename.clone(),
|
||||||
triple: tcx.sess.opts.target_triple.clone(),
|
triple: tcx.sess.opts.target_triple.clone(),
|
||||||
hash: link_meta.crate_hash,
|
hash: tcx.crate_hash(LOCAL_CRATE),
|
||||||
disambiguator: tcx.sess.local_crate_disambiguator(),
|
disambiguator: tcx.sess.local_crate_disambiguator(),
|
||||||
panic_strategy: tcx.sess.panic_strategy(),
|
panic_strategy: tcx.sess.panic_strategy(),
|
||||||
edition: hygiene::default_edition(),
|
edition: hygiene::default_edition(),
|
||||||
|
@ -1824,8 +1822,7 @@ impl<'a, 'tcx, 'v> ItemLikeVisitor<'v> for ImplVisitor<'a, 'tcx> {
|
||||||
// will allow us to slice the metadata to the precise length that we just
|
// will allow us to slice the metadata to the precise length that we just
|
||||||
// generated regardless of trailing bytes that end up in it.
|
// generated regardless of trailing bytes that end up in it.
|
||||||
|
|
||||||
pub fn encode_metadata<'a, 'tcx>(tcx: TyCtxt<'a, 'tcx, 'tcx>,
|
pub fn encode_metadata<'a, 'tcx>(tcx: TyCtxt<'a, 'tcx, 'tcx>)
|
||||||
link_meta: &LinkMeta)
|
|
||||||
-> EncodedMetadata
|
-> EncodedMetadata
|
||||||
{
|
{
|
||||||
let mut encoder = opaque::Encoder::new(vec![]);
|
let mut encoder = opaque::Encoder::new(vec![]);
|
||||||
|
@ -1838,7 +1835,6 @@ pub fn encode_metadata<'a, 'tcx>(tcx: TyCtxt<'a, 'tcx, 'tcx>,
|
||||||
let mut ecx = EncodeContext {
|
let mut ecx = EncodeContext {
|
||||||
opaque: encoder,
|
opaque: encoder,
|
||||||
tcx,
|
tcx,
|
||||||
link_meta,
|
|
||||||
lazy_state: LazyState::NoNode,
|
lazy_state: LazyState::NoNode,
|
||||||
type_shorthands: Default::default(),
|
type_shorthands: Default::default(),
|
||||||
predicate_shorthands: Default::default(),
|
predicate_shorthands: Default::default(),
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue