use rustc_session::config::{Passes, SwitchWithOptPath};
use rustc_session::Session;
use rustc_span::source_map::SourceMap;
-use rustc_span::symbol::{sym, Symbol};
+use rustc_span::symbol::sym;
use rustc_span::{BytePos, FileName, InnerSpan, Pos, Span};
use rustc_target::spec::{MergeFunctions, PanicStrategy, SanitizerSet};
let (coordinator_send, coordinator_receive) = channel();
let sess = tcx.sess;
- let crate_name = tcx.crate_name(LOCAL_CRATE);
let crate_attrs = tcx.hir().attrs(rustc_hir::CRATE_HIR_ID);
let no_builtins = tcx.sess.contains_name(crate_attrs, sym::no_builtins);
let is_compiler_builtins = tcx.sess.contains_name(crate_attrs, sym::compiler_builtins);
OngoingCodegen {
backend,
- crate_name,
metadata,
linker_info,
crate_info,
pub struct OngoingCodegen<B: ExtraBackendMethods> {
pub backend: B,
- pub crate_name: Symbol,
pub metadata: EncodedMetadata,
pub linker_info: LinkerInfo,
pub crate_info: CrateInfo,
(
CodegenResults {
- crate_name: self.crate_name,
metadata: self.metadata,
linker_info: self.linker_info,
crate_info: self.crate_info,
impl CrateInfo {
pub fn new(tcx: TyCtxt<'_>) -> CrateInfo {
+ let local_crate_name = tcx.crate_name(LOCAL_CRATE);
let crate_attrs = tcx.hir().attrs(rustc_hir::CRATE_HIR_ID);
let subsystem = tcx.sess.first_attr_value_str_by_name(crate_attrs, sym::windows_subsystem);
let windows_subsystem = subsystem.map(|subsystem| {
});
let mut info = CrateInfo {
+ local_crate_name,
panic_runtime: None,
compiler_builtins: None,
profiler_runtime: None,
/// and the corresponding properties without referencing information outside of a `CrateInfo`.
#[derive(Debug, Encodable, Decodable)]
pub struct CrateInfo {
+ pub local_crate_name: Symbol,
pub panic_runtime: Option<CrateNum>,
pub compiler_builtins: Option<CrateNum>,
pub profiler_runtime: Option<CrateNum>,
#[derive(Encodable, Decodable)]
pub struct CodegenResults {
- pub crate_name: Symbol,
pub modules: Vec<CompiledModule>,
pub allocator_module: Option<CompiledModule>,
pub metadata_module: Option<CompiledModule>,