1
Fork 0

Reformat use declarations.

The previous commit updated `rustfmt.toml` appropriately. This commit is
the outcome of running `x fmt --all` with the new formatting options.
This commit is contained in:
Nicholas Nethercote 2024-07-29 08:13:50 +10:00
parent 118f9350c5
commit 84ac80f192
1865 changed files with 8367 additions and 9199 deletions

View file

@ -1,11 +1,12 @@
use crate::abi::{self, Abi, Align, FieldsShape, Size};
use crate::abi::{HasDataLayout, TyAbiInterface, TyAndLayout};
use crate::spec::{self, HasTargetSpec, HasWasmCAbiOpt, WasmCAbi};
use rustc_macros::HashStable_Generic;
use rustc_span::Symbol;
use std::fmt;
use std::str::FromStr;
use rustc_macros::HashStable_Generic;
use rustc_span::Symbol;
use crate::abi::{self, Abi, Align, FieldsShape, HasDataLayout, Size, TyAbiInterface, TyAndLayout};
use crate::spec::{self, HasTargetSpec, HasWasmCAbiOpt, WasmCAbi};
mod aarch64;
mod amdgpu;
mod arm;
@ -967,8 +968,9 @@ impl FromStr for Conv {
// Some types are used a lot. Make sure they don't unintentionally get bigger.
#[cfg(target_pointer_width = "64")]
mod size_asserts {
use super::*;
use rustc_data_structures::static_assert_size;
use super::*;
// tidy-alphabetical-start
static_assert_size!(ArgAbi<'_, usize>, 56);
static_assert_size!(FnAbi<'_, usize>, 80);

View file

@ -1,8 +1,7 @@
use super::{ArgAttribute, ArgAttributes, ArgExtension, CastTarget};
use crate::abi::call::{ArgAbi, FnAbi, PassMode, Reg, Size, Uniform};
use crate::abi::{HasDataLayout, TyAbiInterface};
use super::{ArgAttribute, ArgAttributes, ArgExtension, CastTarget};
fn classify_ret<Ty>(ret: &mut ArgAbi<'_, Ty>) {
if ret.layout.is_aggregate() && ret.layout.is_sized() {
classify_aggregate(ret)

View file

@ -1,15 +1,14 @@
use std::fmt;
use std::ops::Deref;
use rustc_data_structures::intern::Interned;
use rustc_macros::HashStable_Generic;
pub use Float::*;
pub use Integer::*;
pub use Primitive::*;
use crate::json::{Json, ToJson};
use std::fmt;
use std::ops::Deref;
use rustc_macros::HashStable_Generic;
pub mod call;
// Explicitly import `Float` to avoid ambiguity with `Primitive::Float`.

View file

@ -1,8 +1,10 @@
use super::{InlineAsmArch, InlineAsmType, ModifierInfo};
use crate::spec::{RelocModel, Target};
use std::fmt;
use rustc_data_structures::fx::FxIndexSet;
use rustc_span::Symbol;
use std::fmt;
use super::{InlineAsmArch, InlineAsmType, ModifierInfo};
use crate::spec::{RelocModel, Target};
def_reg_class! {
AArch64 AArch64InlineAsmRegClass {

View file

@ -1,8 +1,10 @@
use super::{InlineAsmArch, InlineAsmType, ModifierInfo};
use crate::spec::{RelocModel, Target};
use std::fmt;
use rustc_data_structures::fx::FxIndexSet;
use rustc_span::{sym, Symbol};
use std::fmt;
use super::{InlineAsmArch, InlineAsmType, ModifierInfo};
use crate::spec::{RelocModel, Target};
def_reg_class! {
Arm ArmInlineAsmRegClass {

View file

@ -1,7 +1,9 @@
use super::{InlineAsmArch, InlineAsmType, ModifierInfo};
use rustc_span::Symbol;
use std::fmt;
use rustc_span::Symbol;
use super::{InlineAsmArch, InlineAsmType, ModifierInfo};
def_reg_class! {
Avr AvrInlineAsmRegClass {
reg,

View file

@ -1,7 +1,9 @@
use super::{InlineAsmArch, InlineAsmType, ModifierInfo};
use rustc_span::Symbol;
use std::fmt;
use rustc_span::Symbol;
use super::{InlineAsmArch, InlineAsmType, ModifierInfo};
def_reg_class! {
Bpf BpfInlineAsmRegClass {
reg,

View file

@ -1,7 +1,9 @@
use super::{InlineAsmArch, InlineAsmType, ModifierInfo};
use rustc_span::Symbol;
use std::fmt;
use rustc_span::Symbol;
use super::{InlineAsmArch, InlineAsmType, ModifierInfo};
def_reg_class! {
CSKY CSKYInlineAsmRegClass {
reg,

View file

@ -1,7 +1,9 @@
use super::{InlineAsmArch, InlineAsmType, ModifierInfo};
use rustc_span::Symbol;
use std::fmt;
use rustc_span::Symbol;
use super::{InlineAsmArch, InlineAsmType, ModifierInfo};
def_reg_class! {
Hexagon HexagonInlineAsmRegClass {
reg,

View file

@ -1,7 +1,9 @@
use super::{InlineAsmArch, InlineAsmType, ModifierInfo};
use rustc_span::Symbol;
use std::fmt;
use rustc_span::Symbol;
use super::{InlineAsmArch, InlineAsmType, ModifierInfo};
def_reg_class! {
LoongArch LoongArchInlineAsmRegClass {
reg,

View file

@ -1,7 +1,9 @@
use super::{InlineAsmArch, InlineAsmType, ModifierInfo};
use rustc_span::Symbol;
use std::fmt;
use rustc_span::Symbol;
use super::{InlineAsmArch, InlineAsmType, ModifierInfo};
def_reg_class! {
M68k M68kInlineAsmRegClass {
reg,

View file

@ -1,7 +1,9 @@
use super::{InlineAsmArch, InlineAsmType, ModifierInfo};
use rustc_span::Symbol;
use std::fmt;
use rustc_span::Symbol;
use super::{InlineAsmArch, InlineAsmType, ModifierInfo};
def_reg_class! {
Mips MipsInlineAsmRegClass {
reg,

View file

@ -1,10 +1,12 @@
use crate::spec::Target;
use crate::{abi::Size, spec::RelocModel};
use std::fmt;
use std::str::FromStr;
use rustc_data_structures::fx::{FxHashMap, FxIndexSet};
use rustc_macros::{Decodable, Encodable, HashStable_Generic};
use rustc_span::Symbol;
use std::fmt;
use std::str::FromStr;
use crate::abi::Size;
use crate::spec::{RelocModel, Target};
pub struct ModifierInfo {
pub modifier: char,

View file

@ -1,7 +1,9 @@
use super::{InlineAsmArch, InlineAsmType, ModifierInfo};
use rustc_span::Symbol;
use std::fmt;
use rustc_span::Symbol;
use super::{InlineAsmArch, InlineAsmType, ModifierInfo};
def_reg_class! {
Msp430 Msp430InlineAsmRegClass {
reg,

View file

@ -1,6 +1,7 @@
use super::{InlineAsmArch, InlineAsmType, ModifierInfo};
use rustc_span::Symbol;
use super::{InlineAsmArch, InlineAsmType, ModifierInfo};
def_reg_class! {
Nvptx NvptxInlineAsmRegClass {
reg16,

View file

@ -1,7 +1,9 @@
use super::{InlineAsmArch, InlineAsmType, ModifierInfo};
use rustc_span::Symbol;
use std::fmt;
use rustc_span::Symbol;
use super::{InlineAsmArch, InlineAsmType, ModifierInfo};
def_reg_class! {
PowerPC PowerPCInlineAsmRegClass {
reg,

View file

@ -1,8 +1,10 @@
use super::{InlineAsmArch, InlineAsmType, ModifierInfo};
use crate::spec::{RelocModel, Target};
use std::fmt;
use rustc_data_structures::fx::FxIndexSet;
use rustc_span::{sym, Symbol};
use std::fmt;
use super::{InlineAsmArch, InlineAsmType, ModifierInfo};
use crate::spec::{RelocModel, Target};
def_reg_class! {
RiscV RiscVInlineAsmRegClass {

View file

@ -1,7 +1,9 @@
use super::{InlineAsmArch, InlineAsmType, ModifierInfo};
use rustc_span::Symbol;
use std::fmt;
use rustc_span::Symbol;
use super::{InlineAsmArch, InlineAsmType, ModifierInfo};
def_reg_class! {
S390x S390xInlineAsmRegClass {
reg,

View file

@ -1,6 +1,7 @@
use super::{InlineAsmArch, InlineAsmType, ModifierInfo};
use rustc_span::Symbol;
use super::{InlineAsmArch, InlineAsmType, ModifierInfo};
def_reg_class! {
SpirV SpirVInlineAsmRegClass {
reg,

View file

@ -1,6 +1,7 @@
use super::{InlineAsmArch, InlineAsmType, ModifierInfo};
use rustc_span::Symbol;
use super::{InlineAsmArch, InlineAsmType, ModifierInfo};
def_reg_class! {
Wasm WasmInlineAsmRegClass {
local,

View file

@ -1,8 +1,10 @@
use super::{InlineAsmArch, InlineAsmType, ModifierInfo};
use crate::spec::{RelocModel, Target};
use std::fmt;
use rustc_data_structures::fx::FxIndexSet;
use rustc_span::Symbol;
use std::fmt;
use super::{InlineAsmArch, InlineAsmType, ModifierInfo};
use crate::spec::{RelocModel, Target};
def_reg_class! {
X86 X86InlineAsmRegClass {

View file

@ -1,8 +1,10 @@
use std::{borrow::Cow, env};
use std::borrow::Cow;
use std::env;
use crate::spec::{add_link_args, add_link_args_iter};
use crate::spec::{cvs, Cc, DebuginfoKind, FramePointer, LinkArgs, LinkerFlavor, Lld};
use crate::spec::{SplitDebuginfo, StackProbeType, StaticCow, Target, TargetOptions};
use crate::spec::{
add_link_args, add_link_args_iter, cvs, Cc, DebuginfoKind, FramePointer, LinkArgs,
LinkerFlavor, Lld, SplitDebuginfo, StackProbeType, StaticCow, Target, TargetOptions,
};
#[cfg(test)]
mod tests;

View file

@ -1,6 +1,7 @@
use crate::spec::{Cc, LinkerFlavor, Lld, RelocModel, Target, TargetOptions};
use object::elf;
use crate::spec::{Cc, LinkerFlavor, Lld, RelocModel, Target, TargetOptions};
/// A base target for AVR devices using the GNU toolchain.
///
/// Requires GNU avr-gcc and avr-binutils on the host system.

View file

@ -1,6 +1,7 @@
use crate::spec::{cvs, RelroLevel, SplitDebuginfo, TargetOptions};
use std::borrow::Cow;
use crate::spec::{cvs, RelroLevel, SplitDebuginfo, TargetOptions};
pub fn opts() -> TargetOptions {
TargetOptions {
os: "linux".into(),

View file

@ -1,5 +1,4 @@
use crate::spec::crt_objects;
use crate::spec::{base, LinkSelfContainedDefault, TargetOptions};
use crate::spec::{base, crt_objects, LinkSelfContainedDefault, TargetOptions};
pub fn opts() -> TargetOptions {
let mut base = base::linux::opts();

View file

@ -1,6 +1,7 @@
use crate::spec::{DebuginfoKind, LinkerFlavor, Lld, SplitDebuginfo, TargetOptions};
use std::borrow::Cow;
use crate::spec::{DebuginfoKind, LinkerFlavor, Lld, SplitDebuginfo, TargetOptions};
pub fn opts() -> TargetOptions {
// Suppress the verbose logo and authorship debugging output, which would needlessly
// clog any log files.

View file

@ -1,8 +1,10 @@
use crate::spec::LinkSelfContainedDefault;
use crate::spec::{add_link_args, crt_objects};
use crate::spec::{cvs, Cc, DebuginfoKind, LinkerFlavor, Lld, SplitDebuginfo, TargetOptions};
use std::borrow::Cow;
use crate::spec::{
add_link_args, crt_objects, cvs, Cc, DebuginfoKind, LinkSelfContainedDefault, LinkerFlavor,
Lld, SplitDebuginfo, TargetOptions,
};
pub fn opts() -> TargetOptions {
let mut pre_link_args = TargetOptions::link_args(
LinkerFlavor::Gnu(Cc::No, Lld::No),

View file

@ -1,6 +1,7 @@
use crate::spec::{cvs, Cc, DebuginfoKind, LinkerFlavor, Lld, SplitDebuginfo, TargetOptions};
use std::borrow::Cow;
use crate::spec::{cvs, Cc, DebuginfoKind, LinkerFlavor, Lld, SplitDebuginfo, TargetOptions};
pub fn opts() -> TargetOptions {
// We cannot use `-nodefaultlibs` because compiler-rt has to be passed
// as a path since it's not added to linker search path by the default.

View file

@ -40,10 +40,11 @@
//! but not gcc's. As a result rustc cannot link with C++ static libraries (#36710)
//! when linking in self-contained mode.
use crate::spec::LinkOutputKind;
use std::borrow::Cow;
use std::collections::BTreeMap;
use crate::spec::LinkOutputKind;
pub type CrtObjects = BTreeMap<LinkOutputKind, Vec<Cow<'static, str>>>;
pub(super) fn new(obj_table: &[(LinkOutputKind, &[&'static str])]) -> CrtObjects {

View file

@ -34,16 +34,6 @@
//! the target's settings, though `target-feature` and `link-args` will *add*
//! to the list specified by the target, rather than replace.
use crate::abi::call::Conv;
use crate::abi::{Endian, Integer, Size, TargetDataLayout, TargetDataLayoutErrors};
use crate::json::{Json, ToJson};
use crate::spec::abi::Abi;
use crate::spec::crt_objects::CrtObjects;
use rustc_fs_util::try_canonicalize;
use rustc_macros::{Decodable, Encodable, HashStable_Generic};
use rustc_serialize::{Decodable, Decoder, Encodable, Encoder};
use rustc_span::symbol::{kw, sym, Symbol};
use serde_json::Value;
use std::borrow::Cow;
use std::collections::BTreeMap;
use std::hash::{Hash, Hasher};
@ -51,15 +41,28 @@ use std::ops::{Deref, DerefMut};
use std::path::{Path, PathBuf};
use std::str::FromStr;
use std::{fmt, io};
use rustc_fs_util::try_canonicalize;
use rustc_macros::{Decodable, Encodable, HashStable_Generic};
use rustc_serialize::{Decodable, Decoder, Encodable, Encoder};
use rustc_span::symbol::{kw, sym, Symbol};
use serde_json::Value;
use tracing::debug;
use crate::abi::call::Conv;
use crate::abi::{Endian, Integer, Size, TargetDataLayout, TargetDataLayoutErrors};
use crate::json::{Json, ToJson};
use crate::spec::abi::Abi;
use crate::spec::crt_objects::CrtObjects;
pub mod abi;
pub mod crt_objects;
mod base;
pub use base::apple::deployment_target as current_apple_deployment_target;
pub use base::apple::platform as current_apple_platform;
pub use base::apple::sdk_version as current_apple_sdk_version;
pub use base::apple::{
deployment_target as current_apple_deployment_target, platform as current_apple_platform,
sdk_version as current_apple_sdk_version,
};
pub use base::avr_gnu::ef_avr_arch;
/// Linker is called through a C/C++ compiler.
@ -3353,8 +3356,7 @@ impl Target {
target_triple: &TargetTriple,
sysroot: &Path,
) -> Result<(Target, TargetWarnings), String> {
use std::env;
use std::fs;
use std::{env, fs};
fn load_file(path: &Path) -> Result<(Target, TargetWarnings), String> {
let contents = fs::read_to_string(path).map_err(|e| e.to_string())?;

View file

@ -1,5 +1,4 @@
use crate::spec::SanitizerSet;
use crate::spec::{base, StackProbeType, Target, TargetOptions};
use crate::spec::{base, SanitizerSet, StackProbeType, Target, TargetOptions};
pub fn target() -> Target {
let mut base = base::linux_ohos::opts();

View file

@ -1,5 +1,5 @@
use crate::spec::Target;
use crate::{abi::Endian, spec::base};
use crate::abi::Endian;
use crate::spec::{base, Target};
pub fn target() -> Target {
Target {

View file

@ -1,5 +1,5 @@
use crate::spec::Target;
use crate::{abi::Endian, spec::base};
use crate::abi::Endian;
use crate::spec::{base, Target};
pub fn target() -> Target {
Target {

View file

@ -1,5 +1,6 @@
use crate::spec::{Cc, CodeModel, LinkerFlavor, Lld, PanicStrategy, RelocModel};
use crate::spec::{Target, TargetOptions};
use crate::spec::{
Cc, CodeModel, LinkerFlavor, Lld, PanicStrategy, RelocModel, Target, TargetOptions,
};
pub fn target() -> Target {
Target {

View file

@ -1,5 +1,6 @@
use crate::spec::{Cc, CodeModel, LinkerFlavor, Lld, PanicStrategy, RelocModel};
use crate::spec::{Target, TargetOptions};
use crate::spec::{
Cc, CodeModel, LinkerFlavor, Lld, PanicStrategy, RelocModel, Target, TargetOptions,
};
pub fn target() -> Target {
Target {

View file

@ -1,5 +1,6 @@
use crate::spec::LinkSelfContainedDefault;
use crate::spec::{LinkerFlavor, MergeFunctions, PanicStrategy, Target, TargetOptions};
use crate::spec::{
LinkSelfContainedDefault, LinkerFlavor, MergeFunctions, PanicStrategy, Target, TargetOptions,
};
pub fn target() -> Target {
Target {

View file

@ -1,5 +1,4 @@
use crate::spec::{Cc, LinkerFlavor, Lld, PanicStrategy, RelocModel};
use crate::spec::{Target, TargetOptions};
use crate::spec::{Cc, LinkerFlavor, Lld, PanicStrategy, RelocModel, Target, TargetOptions};
pub fn target() -> Target {
Target {

View file

@ -1,6 +1,7 @@
use crate::spec::SanitizerSet;
use crate::spec::{Cc, CodeModel, LinkerFlavor, Lld, PanicStrategy};
use crate::spec::{RelocModel, Target, TargetOptions};
use crate::spec::{
Cc, CodeModel, LinkerFlavor, Lld, PanicStrategy, RelocModel, SanitizerSet, Target,
TargetOptions,
};
pub fn target() -> Target {
Target {

View file

@ -1,6 +1,7 @@
use crate::spec::SanitizerSet;
use crate::spec::{cvs, Cc, CodeModel, LinkerFlavor, Lld, PanicStrategy};
use crate::spec::{RelocModel, Target, TargetOptions};
use crate::spec::{
cvs, Cc, CodeModel, LinkerFlavor, Lld, PanicStrategy, RelocModel, SanitizerSet, Target,
TargetOptions,
};
pub fn target() -> Target {
Target {

View file

@ -1,5 +1,7 @@
use crate::spec::{Cc, CodeModel, LinkerFlavor, Lld, PanicStrategy};
use crate::spec::{RelocModel, SanitizerSet, Target, TargetOptions};
use crate::spec::{
Cc, CodeModel, LinkerFlavor, Lld, PanicStrategy, RelocModel, SanitizerSet, Target,
TargetOptions,
};
pub fn target() -> Target {
Target {

View file

@ -1,6 +1,7 @@
use crate::spec::SanitizerSet;
use crate::spec::{cvs, Cc, CodeModel, LinkerFlavor, Lld, PanicStrategy};
use crate::spec::{RelocModel, Target, TargetOptions};
use crate::spec::{
cvs, Cc, CodeModel, LinkerFlavor, Lld, PanicStrategy, RelocModel, SanitizerSet, Target,
TargetOptions,
};
pub fn target() -> Target {
Target {

View file

@ -9,8 +9,7 @@
//! The default link script is very likely wrong, so you should use
//! `-Clink-arg=-Tmy_script.ld` to override that with a correct linker script.
use crate::spec::{base, PanicStrategy, RelocModel, Target, TargetOptions};
use crate::spec::{cvs, FramePointer};
use crate::spec::{base, cvs, FramePointer, PanicStrategy, RelocModel, Target, TargetOptions};
pub fn target() -> Target {
Target {

View file

@ -10,9 +10,7 @@
//! was since renamed to `wasm32-wasip1` after the preview2 target was
//! introduced.
use crate::spec::crt_objects;
use crate::spec::LinkSelfContainedDefault;
use crate::spec::{base, Cc, LinkerFlavor, Target};
use crate::spec::{base, crt_objects, Cc, LinkSelfContainedDefault, LinkerFlavor, Target};
pub fn target() -> Target {
let mut options = base::wasm::options();

View file

@ -16,9 +16,7 @@
//! You can see more about wasi at <https://wasi.dev> and the component model at
//! <https://github.com/WebAssembly/component-model>.
use crate::spec::crt_objects;
use crate::spec::LinkSelfContainedDefault;
use crate::spec::{base, RelocModel, Target};
use crate::spec::{base, crt_objects, LinkSelfContainedDefault, RelocModel, Target};
pub fn target() -> Target {
let mut options = base::wasm::options();

View file

@ -1,6 +1,5 @@
use crate::spec::base::apple::{macos_llvm_target, opts, Arch, TargetAbi};
use crate::spec::{Cc, FramePointer, LinkerFlavor, Lld, SanitizerSet};
use crate::spec::{Target, TargetOptions};
use crate::spec::{Cc, FramePointer, LinkerFlavor, Lld, SanitizerSet, Target, TargetOptions};
pub fn target() -> Target {
let arch = Arch::X86_64;

View file

@ -4,8 +4,10 @@
// `target-cpu` compiler flags to opt-in more hardware-specific
// features.
use crate::spec::{Cc, CodeModel, LinkerFlavor, Lld, PanicStrategy};
use crate::spec::{RelroLevel, SanitizerSet, StackProbeType, Target, TargetOptions};
use crate::spec::{
Cc, CodeModel, LinkerFlavor, Lld, PanicStrategy, RelroLevel, SanitizerSet, StackProbeType,
Target, TargetOptions,
};
pub fn target() -> Target {
let opts = TargetOptions {

View file

@ -5,10 +5,8 @@
// The win64 ABI is used. It differs from the sysv64 ABI, so we must use a windows target with
// LLVM. "x86_64-unknown-windows" is used to get the minimal subset of windows-specific features.
use crate::{
abi::call::Conv,
spec::{base, Target},
};
use crate::abi::call::Conv;
use crate::spec::{base, Target};
pub fn target() -> Target {
let mut base = base::uefi_msvc::opts();

View file

@ -1,6 +1,5 @@
use crate::spec::base::apple::{macos_llvm_target, opts, Arch, TargetAbi};
use crate::spec::{Cc, FramePointer, LinkerFlavor, Lld, SanitizerSet};
use crate::spec::{Target, TargetOptions};
use crate::spec::{Cc, FramePointer, LinkerFlavor, Lld, SanitizerSet, Target, TargetOptions};
pub fn target() -> Target {
let arch = Arch::X86_64h;

View file

@ -1,5 +1,6 @@
use crate::abi::Endian;
use crate::spec::{base::xtensa, cvs, Target, TargetOptions};
use crate::spec::base::xtensa;
use crate::spec::{cvs, Target, TargetOptions};
pub fn target() -> Target {
Target {

View file

@ -1,4 +1,5 @@
use crate::spec::{base::xtensa, Target, TargetOptions};
use crate::spec::base::xtensa;
use crate::spec::{Target, TargetOptions};
pub fn target() -> Target {
Target {

View file

@ -1,5 +1,6 @@
use crate::abi::Endian;
use crate::spec::{base::xtensa, cvs, Target, TargetOptions};
use crate::spec::base::xtensa;
use crate::spec::{cvs, Target, TargetOptions};
pub fn target() -> Target {
Target {

View file

@ -1,4 +1,5 @@
use crate::spec::{base::xtensa, Target, TargetOptions};
use crate::spec::base::xtensa;
use crate::spec::{Target, TargetOptions};
pub fn target() -> Target {
Target {

View file

@ -1,5 +1,6 @@
use crate::abi::Endian;
use crate::spec::{base::xtensa, cvs, Target, TargetOptions};
use crate::spec::base::xtensa;
use crate::spec::{cvs, Target, TargetOptions};
pub fn target() -> Target {
Target {

View file

@ -1,4 +1,5 @@
use crate::spec::{base::xtensa, Target, TargetOptions};
use crate::spec::base::xtensa;
use crate::spec::{Target, TargetOptions};
pub fn target() -> Target {
Target {

View file

@ -1,6 +1,7 @@
use super::super::*;
use std::assert_matches::assert_matches;
use super::super::*;
// Test target self-consistency and JSON encoding/decoding roundtrip.
pub(super) fn test_target(mut target: Target) {
let recycled_target = Target::from_json(target.to_json()).map(|(j, _)| j);

View file

@ -1,5 +1,4 @@
use rustc_span::symbol::sym;
use rustc_span::symbol::Symbol;
use rustc_span::symbol::{sym, Symbol};
/// Features that control behaviour of rustc, rather than the codegen.
pub const RUSTC_SPECIFIC_FEATURES: &[&str] = &["crt-static"];