Skip to content

Commit 38af4a2

Browse files
mejrsJonathanBrouwer
authored andcommitted
move CrateType
1 parent f713bb2 commit 38af4a2

51 files changed

Lines changed: 196 additions & 151 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

‎Cargo.lock‎

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3826,6 +3826,7 @@ dependencies = [
38263826
"rustc_serialize",
38273827
"rustc_session",
38283828
"rustc_span",
3829+
"rustc_structures",
38293830
"rustc_symbol_mangling",
38303831
"rustc_target",
38313832
"rustc_trait_selection",
@@ -3952,6 +3953,7 @@ dependencies = [
39523953
"rustc_resolve",
39533954
"rustc_session",
39543955
"rustc_span",
3956+
"rustc_structures",
39553957
"rustc_target",
39563958
"serde_json",
39573959
"shlex",
@@ -4298,6 +4300,7 @@ dependencies = [
42984300
"rustc_parse_format",
42994301
"rustc_session",
43004302
"rustc_span",
4303+
"rustc_structures",
43014304
"rustc_symbol_mangling",
43024305
"rustc_target",
43034306
"rustc_trait_selection",
@@ -4379,6 +4382,7 @@ dependencies = [
43794382
"rustc_serialize",
43804383
"rustc_session",
43814384
"rustc_span",
4385+
"rustc_structures",
43824386
"rustc_target",
43834387
"tempfile",
43844388
"tracing",
@@ -4580,6 +4584,7 @@ dependencies = [
45804584
"rustc_privacy",
45814585
"rustc_session",
45824586
"rustc_span",
4587+
"rustc_structures",
45834588
"rustc_target",
45844589
"rustc_trait_selection",
45854590
"tracing",
@@ -4700,6 +4705,7 @@ dependencies = [
47004705
"rustc_middle",
47014706
"rustc_session",
47024707
"rustc_span",
4708+
"rustc_structures",
47034709
"smallvec",
47044710
"thin-vec",
47054711
"tracing",
@@ -4790,6 +4796,7 @@ dependencies = [
47904796
"rustc_error_messages",
47914797
"rustc_macros",
47924798
"rustc_serialize",
4799+
"rustc_span",
47934800
"schemars",
47944801
"serde",
47954802
]

‎compiler/rustc_attr_ir/src/data_structures.rs‎

Lines changed: 1 addition & 103 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ use rustc_macros::{Decodable, Encodable, PrintAttribute, StableHash};
1616
use rustc_span::def_id::DefId;
1717
use rustc_span::hygiene::Transparency;
1818
use rustc_span::{ErrorGuaranteed, Ident, Span, Symbol};
19-
use rustc_structures::{Limit, SanitizerSet};
19+
use rustc_structures::{CrateType, Limit, SanitizerSet};
2020
use thin_vec::ThinVec;
2121

2222
pub use crate::canonical_symbols::{CanonicalSymbol, CanonicalSymbols};
@@ -691,108 +691,6 @@ pub enum CollapseMacroDebuginfo {
691691
Yes = 3,
692692
}
693693

694-
/// Crate type, as specified by `#![crate_type]`
695-
#[derive(Copy, Clone, Debug, Hash, PartialEq, Default, PartialOrd, Eq, Ord)]
696-
#[derive(StableHash, Encodable, Decodable, PrintAttribute)]
697-
pub enum CrateType {
698-
/// `#![crate_type = "bin"]`
699-
Executable,
700-
/// `#![crate_type = "dylib"]`
701-
Dylib,
702-
/// `#![crate_type = "rlib"]` or `#![crate_type = "lib"]`
703-
#[default]
704-
Rlib,
705-
/// `#![crate_type = "staticlib"]`
706-
StaticLib,
707-
/// `#![crate_type = "cdylib"]`
708-
Cdylib,
709-
/// `#![crate_type = "proc-macro"]`
710-
ProcMacro,
711-
/// `#![crate_type = "sdylib"]`
712-
// Unstable; feature(export_stable)
713-
Sdylib,
714-
}
715-
716-
impl CrateType {
717-
/// Pairs of each `#[crate_type] = "..."` value and the crate type it resolves to
718-
pub fn all() -> &'static [(Symbol, Self)] {
719-
debug_assert_eq!(CrateType::default(), CrateType::Rlib);
720-
&[
721-
(rustc_span::sym::lib, CrateType::Rlib),
722-
(rustc_span::sym::rlib, CrateType::Rlib),
723-
(rustc_span::sym::dylib, CrateType::Dylib),
724-
(rustc_span::sym::cdylib, CrateType::Cdylib),
725-
(rustc_span::sym::staticlib, CrateType::StaticLib),
726-
(rustc_span::sym::proc_dash_macro, CrateType::ProcMacro),
727-
(rustc_span::sym::bin, CrateType::Executable),
728-
(rustc_span::sym::sdylib, CrateType::Sdylib),
729-
]
730-
}
731-
732-
/// Same as [`CrateType::all`], but does not include unstable options.
733-
/// Used for diagnostics.
734-
pub fn all_stable() -> &'static [(Symbol, Self)] {
735-
debug_assert_eq!(CrateType::default(), CrateType::Rlib);
736-
&[
737-
(rustc_span::sym::lib, CrateType::Rlib),
738-
(rustc_span::sym::rlib, CrateType::Rlib),
739-
(rustc_span::sym::dylib, CrateType::Dylib),
740-
(rustc_span::sym::cdylib, CrateType::Cdylib),
741-
(rustc_span::sym::staticlib, CrateType::StaticLib),
742-
(rustc_span::sym::proc_dash_macro, CrateType::ProcMacro),
743-
(rustc_span::sym::bin, CrateType::Executable),
744-
]
745-
}
746-
747-
pub fn has_metadata(self) -> bool {
748-
match self {
749-
CrateType::Rlib | CrateType::Dylib | CrateType::ProcMacro => true,
750-
CrateType::Executable
751-
| CrateType::Cdylib
752-
| CrateType::StaticLib
753-
| CrateType::Sdylib => false,
754-
}
755-
}
756-
}
757-
758-
impl TryFrom<Symbol> for CrateType {
759-
type Error = ();
760-
761-
fn try_from(value: Symbol) -> Result<Self, Self::Error> {
762-
Ok(match value {
763-
rustc_span::sym::bin => CrateType::Executable,
764-
rustc_span::sym::dylib => CrateType::Dylib,
765-
rustc_span::sym::staticlib => CrateType::StaticLib,
766-
rustc_span::sym::cdylib => CrateType::Cdylib,
767-
rustc_span::sym::rlib => CrateType::Rlib,
768-
rustc_span::sym::lib => CrateType::default(),
769-
rustc_span::sym::proc_dash_macro => CrateType::ProcMacro,
770-
rustc_span::sym::sdylib => CrateType::Sdylib,
771-
_ => return Err(()),
772-
})
773-
}
774-
}
775-
776-
impl std::fmt::Display for CrateType {
777-
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
778-
match *self {
779-
CrateType::Executable => "bin".fmt(f),
780-
CrateType::Dylib => "dylib".fmt(f),
781-
CrateType::Rlib => "rlib".fmt(f),
782-
CrateType::StaticLib => "staticlib".fmt(f),
783-
CrateType::Cdylib => "cdylib".fmt(f),
784-
CrateType::ProcMacro => "proc-macro".fmt(f),
785-
CrateType::Sdylib => "sdylib".fmt(f),
786-
}
787-
}
788-
}
789-
790-
impl IntoDiagArg for CrateType {
791-
fn into_diag_arg(self, _: &mut Option<std::path::PathBuf>) -> DiagArgValue {
792-
self.to_string().into_diag_arg(&mut None)
793-
}
794-
}
795-
796694
#[derive(Clone, Debug, StableHash, Encodable, Decodable, PrintAttribute)]
797695
pub enum RustcDumpLayoutKind {
798696
Align,

‎compiler/rustc_attr_ir/src/pretty_printing.rs‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ use rustc_data_structures::fx::FxIndexMap;
1414
use rustc_span::def_id::DefId;
1515
use rustc_span::hygiene::Transparency;
1616
use rustc_span::{ErrorGuaranteed, Ident, Span, Symbol};
17-
use rustc_structures::{Limit, SanitizerSet};
17+
use rustc_structures::{CrateType, Limit, SanitizerSet};
1818
use thin_vec::ThinVec;
1919

2020
/// This trait is used to print attributes in `rustc_hir_pretty`.
@@ -207,4 +207,5 @@ print_debug!(
207207
CfgEntry,
208208
DiffActivity,
209209
DiffMode,
210+
CrateType,
210211
);

‎compiler/rustc_attr_parsing/src/attributes/crate_level.rs‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
1-
use rustc_attr_ir::{CrateType, WindowsSubsystemKind};
1+
use rustc_attr_ir::WindowsSubsystemKind;
22
use rustc_data_structures::fx::FxIndexSet;
33
use rustc_feature::AttributeStability;
44
use rustc_lint_defs::builtin::{DUPLICATE_TOOLS, UNKNOWN_CRATE_TYPES};
55
use rustc_span::Symbol;
66
use rustc_span::edit_distance::find_best_match_for_name_with_substrings;
7+
use rustc_structures::CrateType;
78

89
use super::prelude::*;
910
use crate::diagnostics::{

‎compiler/rustc_codegen_cranelift/src/driver/jit.rs‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ fn create_jit_module(
3737
}
3838

3939
pub(crate) fn run_jit(tcx: TyCtxt<'_>, target_cpu: String, jit_args: Vec<String>) -> ! {
40-
if !tcx.crate_types().contains(&rustc_session::config::CrateType::Executable) {
40+
if !tcx.crate_types().contains(&rustc_structures::CrateType::Executable) {
4141
tcx.dcx().fatal("can't jit non-executable crate");
4242
}
4343

@@ -180,7 +180,7 @@ fn dep_symbol_lookup_fn(
180180

181181
let mut dylib_paths = Vec::new();
182182

183-
let data = &crate_info.dependency_formats[&rustc_session::config::CrateType::Executable];
183+
let data = &crate_info.dependency_formats[&rustc_structures::CrateType::Executable];
184184
// `used_crates` is in reverse postorder in terms of dependencies. Reverse the order here to
185185
// get a postorder which ensures that all dependencies of a dylib are loaded before the dylib
186186
// itself. This helps the dynamic linker to find dylibs not in the regular dynamic library

‎compiler/rustc_codegen_llvm/src/context.rs‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,11 @@ use rustc_middle::ty::layout::{
2121
use rustc_middle::ty::{self, Instance, Ty, TyCtxt};
2222
use rustc_middle::{bug, span_bug};
2323
use rustc_session::config::{
24-
BranchProtection, CFGuard, CFProtection, CrateType, DebugInfo, FunctionReturn, PAuthKey, PacRet,
24+
BranchProtection, CFGuard, CFProtection, DebugInfo, FunctionReturn, PAuthKey, PacRet,
2525
};
2626
use rustc_session::{PointerAuthSchema, Session};
2727
use rustc_span::{DUMMY_SP, Span, Spanned, Symbol, sym};
28+
use rustc_structures::CrateType;
2829
use rustc_target::spec::{
2930
Arch, CfgAbi, Env, FramePointer, HasTargetSpec, Os, RelocModel, SmallDataThresholdSupport,
3031
Target, TlsModel,

‎compiler/rustc_codegen_llvm/src/debuginfo/gdb.rs‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@ use rustc_codegen_ssa::traits::*;
66
use rustc_hir::attrs::DebuggerVisualizerType;
77
use rustc_hir::def_id::LOCAL_CRATE;
88
use rustc_middle::bug;
9-
use rustc_session::config::{CrateType, DebugInfo};
9+
use rustc_session::config::DebugInfo;
10+
use rustc_structures::CrateType;
1011

1112
use crate::builder::Builder;
1213
use crate::common::CodegenCx;

‎compiler/rustc_codegen_llvm/src/intrinsic.rs‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,9 @@ use rustc_middle::ty::layout::{FnAbiOf, HasTyCtxt, HasTypingEnv, LayoutOf};
2323
use rustc_middle::ty::offload_meta::OffloadMetadata;
2424
use rustc_middle::ty::{self, GenericArgsRef, Instance, SimdAlign, Ty, TyCtxt, TypingEnv};
2525
use rustc_middle::{bug, span_bug};
26-
use rustc_session::config::CrateType;
2726
use rustc_session::diagnostics::feature_err;
2827
use rustc_span::{ErrorGuaranteed, Span, Symbol, sym};
28+
use rustc_structures::CrateType;
2929
use rustc_symbol_mangling::{
3030
mangle_internal_symbol, mangle_offload_export, symbol_name_for_instance_in_crate,
3131
};

‎compiler/rustc_codegen_llvm/src/mono_item.rs‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ use rustc_middle::middle::codegen_fn_attrs::CodegenFnAttrs;
1111
use rustc_middle::mono::Visibility;
1212
use rustc_middle::ty::layout::{FnAbiOf, HasTypingEnv, LayoutOf};
1313
use rustc_middle::ty::{self, Instance, Ty, TypeVisitableExt};
14-
use rustc_session::config::CrateType;
14+
use rustc_structures::CrateType;
1515
use rustc_target::callconv::{FnAbi, PassMode};
1616
use rustc_target::spec::{Arch, RelocModel};
1717
use tracing::debug;

‎compiler/rustc_codegen_ssa/Cargo.toml‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ rustc_mir_transform = { path = "../rustc_mir_transform" }
3232
rustc_serialize = { path = "../rustc_serialize" }
3333
rustc_session = { path = "../rustc_session" }
3434
rustc_span = { path = "../rustc_span" }
35+
rustc_structures = { path = "../rustc_structures" }
3536
rustc_symbol_mangling = { path = "../rustc_symbol_mangling" }
3637
rustc_target = { path = "../rustc_target" }
3738
rustc_trait_selection = { path = "../rustc_trait_selection" }

0 commit comments

Comments
 (0)