Skip to main content

rustc_span/
symbol.rs

1//! An "interner" is a data structure that associates values with usize tags and
2//! allows bidirectional lookup; i.e., given a value, one can easily find the
3//! type, and vice versa.
4
5use std::hash::{BuildHasher, Hash, Hasher};
6use std::{fmt, str};
7
8use rustc_arena::DroplessArena;
9use rustc_data_structures::fx::FxBuildHasher;
10use rustc_data_structures::hash_table::{Entry, HashTable};
11use rustc_data_structures::stable_hash::{StableCompare, StableHash, StableHashCtxt, StableHasher};
12use rustc_data_structures::sync::Lock;
13use rustc_macros::{Decodable, Encodable, StableHash, symbols};
14
15use crate::edit_distance::find_best_match_for_name;
16use crate::{DUMMY_SP, Edition, Span, with_session_globals};
17
18#[cfg(test)]
19mod tests;
20
21// The proc macro code for this is in `compiler/rustc_macros/src/symbols.rs`.
22const SYMBOL_DIGITS_BASE: u32 = 2308u32;
const SYMBOL_UPPERCASE_LETTERS_BASE: u32 = 2318u32;
const SYMBOL_LOWERCASE_LETTERS_BASE: u32 = 2344u32;
#[doc = r" The number of predefined symbols; this is the first index for"]
#[doc = r" extra pre-interned symbols in an Interner created via"]
#[doc = r" [`Interner::with_extra_symbols`]."]
pub const PREDEFINED_SYMBOLS_COUNT: u32 = 2371u32;
#[doc(hidden)]
#[allow(non_upper_case_globals)]
mod kw_generated {
    use super::Symbol;
    pub const DollarCrate: Symbol = Symbol::new(0u32);
    pub const PathRoot: Symbol = Symbol::new(1u32);
    pub const Underscore: Symbol = Symbol::new(2u32);
    pub const As: Symbol = Symbol::new(3u32);
    pub const Break: Symbol = Symbol::new(4u32);
    pub const Const: Symbol = Symbol::new(5u32);
    pub const Continue: Symbol = Symbol::new(6u32);
    pub const Crate: Symbol = Symbol::new(7u32);
    pub const Else: Symbol = Symbol::new(8u32);
    pub const Enum: Symbol = Symbol::new(9u32);
    pub const Extern: Symbol = Symbol::new(10u32);
    pub const False: Symbol = Symbol::new(11u32);
    pub const Fn: Symbol = Symbol::new(12u32);
    pub const For: Symbol = Symbol::new(13u32);
    pub const If: Symbol = Symbol::new(14u32);
    pub const Impl: Symbol = Symbol::new(15u32);
    pub const In: Symbol = Symbol::new(16u32);
    pub const Let: Symbol = Symbol::new(17u32);
    pub const Loop: Symbol = Symbol::new(18u32);
    pub const Match: Symbol = Symbol::new(19u32);
    pub const Mod: Symbol = Symbol::new(20u32);
    pub const Move: Symbol = Symbol::new(21u32);
    pub const Mut: Symbol = Symbol::new(22u32);
    pub const Pub: Symbol = Symbol::new(23u32);
    pub const Ref: Symbol = Symbol::new(24u32);
    pub const Return: Symbol = Symbol::new(25u32);
    pub const SelfLower: Symbol = Symbol::new(26u32);
    pub const SelfUpper: Symbol = Symbol::new(27u32);
    pub const Static: Symbol = Symbol::new(28u32);
    pub const Struct: Symbol = Symbol::new(29u32);
    pub const Super: Symbol = Symbol::new(30u32);
    pub const Trait: Symbol = Symbol::new(31u32);
    pub const True: Symbol = Symbol::new(32u32);
    pub const Type: Symbol = Symbol::new(33u32);
    pub const Unsafe: Symbol = Symbol::new(34u32);
    pub const Use: Symbol = Symbol::new(35u32);
    pub const Where: Symbol = Symbol::new(36u32);
    pub const While: Symbol = Symbol::new(37u32);
    pub const Abstract: Symbol = Symbol::new(38u32);
    pub const Become: Symbol = Symbol::new(39u32);
    pub const Box: Symbol = Symbol::new(40u32);
    pub const Do: Symbol = Symbol::new(41u32);
    pub const Final: Symbol = Symbol::new(42u32);
    pub const Macro: Symbol = Symbol::new(43u32);
    pub const Override: Symbol = Symbol::new(44u32);
    pub const Priv: Symbol = Symbol::new(45u32);
    pub const Typeof: Symbol = Symbol::new(46u32);
    pub const Unsized: Symbol = Symbol::new(47u32);
    pub const Virtual: Symbol = Symbol::new(48u32);
    pub const Yield: Symbol = Symbol::new(49u32);
    pub const Async: Symbol = Symbol::new(50u32);
    pub const Await: Symbol = Symbol::new(51u32);
    pub const Dyn: Symbol = Symbol::new(52u32);
    pub const Gen: Symbol = Symbol::new(53u32);
    pub const Try: Symbol = Symbol::new(54u32);
    pub const StaticLifetime: Symbol = Symbol::new(55u32);
    pub const UnderscoreLifetime: Symbol = Symbol::new(56u32);
    pub const Auto: Symbol = Symbol::new(57u32);
    pub const Builtin: Symbol = Symbol::new(58u32);
    pub const Catch: Symbol = Symbol::new(59u32);
    pub const ContractEnsures: Symbol = Symbol::new(60u32);
    pub const ContractRequires: Symbol = Symbol::new(61u32);
    pub const Default: Symbol = Symbol::new(62u32);
    pub const MacroRules: Symbol = Symbol::new(63u32);
    pub const Pin: Symbol = Symbol::new(64u32);
    pub const Raw: Symbol = Symbol::new(65u32);
    pub const Reuse: Symbol = Symbol::new(66u32);
    pub const Safe: Symbol = Symbol::new(67u32);
    pub const Union: Symbol = Symbol::new(68u32);
    pub const Yeet: Symbol = Symbol::new(69u32);
}
#[allow(non_upper_case_globals)]
#[doc(hidden)]
pub mod sym_generated {
    use super::Symbol;
    pub const Abi: Symbol = Symbol::new(70u32);
    pub const AcqRel: Symbol = Symbol::new(71u32);
    pub const Acquire: Symbol = Symbol::new(72u32);
    pub const Active: Symbol = Symbol::new(73u32);
    pub const ActiveOnly: Symbol = Symbol::new(74u32);
    pub const Alignment: Symbol = Symbol::new(75u32);
    pub const Arc: Symbol = Symbol::new(76u32);
    pub const ArcWeak: Symbol = Symbol::new(77u32);
    pub const Array: Symbol = Symbol::new(78u32);
    pub const AsMut: Symbol = Symbol::new(79u32);
    pub const AsRef: Symbol = Symbol::new(80u32);
    pub const AssertParamIsClone: Symbol = Symbol::new(81u32);
    pub const AssertParamIsCopy: Symbol = Symbol::new(82u32);
    pub const AssertParamIsEq: Symbol = Symbol::new(83u32);
    pub const AsyncGenFinished: Symbol = Symbol::new(84u32);
    pub const AsyncGenPending: Symbol = Symbol::new(85u32);
    pub const AsyncGenReady: Symbol = Symbol::new(86u32);
    pub const Atomic: Symbol = Symbol::new(87u32);
    pub const BTreeMap: Symbol = Symbol::new(88u32);
    pub const Bool: Symbol = Symbol::new(89u32);
    pub const Borrow: Symbol = Symbol::new(90u32);
    pub const BorrowMut: Symbol = Symbol::new(91u32);
    pub const Break: Symbol = Symbol::new(92u32);
    pub const BuildHasher: Symbol = Symbol::new(93u32);
    pub const CStr: Symbol = Symbol::new(94u32);
    pub const CallOnceFuture: Symbol = Symbol::new(95u32);
    pub const CallRefFuture: Symbol = Symbol::new(96u32);
    pub const Capture: Symbol = Symbol::new(97u32);
    pub const Cell: Symbol = Symbol::new(98u32);
    pub const Char: Symbol = Symbol::new(99u32);
    pub const Cleanup: Symbol = Symbol::new(100u32);
    pub const Client: Symbol = Symbol::new(101u32);
    pub const Clone: Symbol = Symbol::new(102u32);
    pub const CoercePointee: Symbol = Symbol::new(103u32);
    pub const CoercePointeeValidated: Symbol = Symbol::new(104u32);
    pub const CoerceShared: Symbol = Symbol::new(105u32);
    pub const CoerceUnsized: Symbol = Symbol::new(106u32);
    pub const Const: Symbol = Symbol::new(107u32);
    pub const ConstParamTy: Symbol = Symbol::new(108u32);
    pub const ConstParamTy_: Symbol = Symbol::new(109u32);
    pub const Context: Symbol = Symbol::new(110u32);
    pub const Continue: Symbol = Symbol::new(111u32);
    pub const ControlFlow: Symbol = Symbol::new(112u32);
    pub const Copy: Symbol = Symbol::new(113u32);
    pub const Cow: Symbol = Symbol::new(114u32);
    pub const Debug: Symbol = Symbol::new(115u32);
    pub const Default: Symbol = Symbol::new(116u32);
    pub const Deref: Symbol = Symbol::new(117u32);
    pub const DispatchFromDyn: Symbol = Symbol::new(118u32);
    pub const Display: Symbol = Symbol::new(119u32);
    pub const Dual: Symbol = Symbol::new(120u32);
    pub const DualOnly: Symbol = Symbol::new(121u32);
    pub const Dualv: Symbol = Symbol::new(122u32);
    pub const DualvOnly: Symbol = Symbol::new(123u32);
    pub const Duplicated: Symbol = Symbol::new(124u32);
    pub const DuplicatedOnly: Symbol = Symbol::new(125u32);
    pub const DynTrait: Symbol = Symbol::new(126u32);
    pub const Enum: Symbol = Symbol::new(127u32);
    pub const Eq: Symbol = Symbol::new(128u32);
    pub const Equal: Symbol = Symbol::new(129u32);
    pub const Err: Symbol = Symbol::new(130u32);
    pub const Expected: Symbol = Symbol::new(131u32);
    pub const ExternC: Symbol = Symbol::new(132u32);
    pub const ExternRust: Symbol = Symbol::new(133u32);
    pub const Float: Symbol = Symbol::new(134u32);
    pub const FmtArgumentsNew: Symbol = Symbol::new(135u32);
    pub const Fn: Symbol = Symbol::new(136u32);
    pub const FnMut: Symbol = Symbol::new(137u32);
    pub const FnOnce: Symbol = Symbol::new(138u32);
    pub const FnPtr: Symbol = Symbol::new(139u32);
    pub const Formatter: Symbol = Symbol::new(140u32);
    pub const Forward: Symbol = Symbol::new(141u32);
    pub const Found: Symbol = Symbol::new(142u32);
    pub const From: Symbol = Symbol::new(143u32);
    pub const FromIterator: Symbol = Symbol::new(144u32);
    pub const FromResidual: Symbol = Symbol::new(145u32);
    pub const GlobalAlloc: Symbol = Symbol::new(146u32);
    pub const Hash: Symbol = Symbol::new(147u32);
    pub const HashMap: Symbol = Symbol::new(148u32);
    pub const HashSet: Symbol = Symbol::new(149u32);
    pub const Hasher: Symbol = Symbol::new(150u32);
    pub const InCleanup: Symbol = Symbol::new(151u32);
    pub const IndexOutput: Symbol = Symbol::new(152u32);
    pub const Input: Symbol = Symbol::new(153u32);
    pub const Int: Symbol = Symbol::new(154u32);
    pub const Into: Symbol = Symbol::new(155u32);
    pub const IntoAsyncIterator: Symbol = Symbol::new(156u32);
    pub const IntoFuture: Symbol = Symbol::new(157u32);
    pub const IntoIterator: Symbol = Symbol::new(158u32);
    pub const IntoIteratorItem: Symbol = Symbol::new(159u32);
    pub const IoBufReader: Symbol = Symbol::new(160u32);
    pub const IrTyKind: Symbol = Symbol::new(161u32);
    pub const Item: Symbol = Symbol::new(162u32);
    pub const ItemContext: Symbol = Symbol::new(163u32);
    pub const Iterator: Symbol = Symbol::new(164u32);
    pub const IteratorItem: Symbol = Symbol::new(165u32);
    pub const IteratorMap: Symbol = Symbol::new(166u32);
    pub const Layout: Symbol = Symbol::new(167u32);
    pub const Lifetime: Symbol = Symbol::new(168u32);
    pub const LintPass: Symbol = Symbol::new(169u32);
    pub const LocalKey: Symbol = Symbol::new(170u32);
    pub const Mutex: Symbol = Symbol::new(171u32);
    pub const MutexGuard: Symbol = Symbol::new(172u32);
    pub const Named: Symbol = Symbol::new(173u32);
    pub const NonZero: Symbol = Symbol::new(174u32);
    pub const None: Symbol = Symbol::new(175u32);
    pub const Normal: Symbol = Symbol::new(176u32);
    pub const Ok: Symbol = Symbol::new(177u32);
    pub const Option: Symbol = Symbol::new(178u32);
    pub const Ord: Symbol = Symbol::new(179u32);
    pub const Ordering: Symbol = Symbol::new(180u32);
    pub const Other: Symbol = Symbol::new(181u32);
    pub const Output: Symbol = Symbol::new(182u32);
    pub const ParamSet: Symbol = Symbol::new(183u32);
    pub const PartialEq: Symbol = Symbol::new(184u32);
    pub const PartialOrd: Symbol = Symbol::new(185u32);
    pub const Pending: Symbol = Symbol::new(186u32);
    pub const PinDerefMutHelper: Symbol = Symbol::new(187u32);
    pub const PinMacroHelper: Symbol = Symbol::new(188u32);
    pub const Pointer: Symbol = Symbol::new(189u32);
    pub const Poll: Symbol = Symbol::new(190u32);
    pub const Range: Symbol = Symbol::new(191u32);
    pub const RangeCopy: Symbol = Symbol::new(192u32);
    pub const RangeFrom: Symbol = Symbol::new(193u32);
    pub const RangeFromCopy: Symbol = Symbol::new(194u32);
    pub const RangeFull: Symbol = Symbol::new(195u32);
    pub const RangeInclusive: Symbol = Symbol::new(196u32);
    pub const RangeInclusiveCopy: Symbol = Symbol::new(197u32);
    pub const RangeMax: Symbol = Symbol::new(198u32);
    pub const RangeMin: Symbol = Symbol::new(199u32);
    pub const RangeSub: Symbol = Symbol::new(200u32);
    pub const RangeTo: Symbol = Symbol::new(201u32);
    pub const RangeToInclusive: Symbol = Symbol::new(202u32);
    pub const RangeToInclusiveCopy: Symbol = Symbol::new(203u32);
    pub const Rc: Symbol = Symbol::new(204u32);
    pub const RcWeak: Symbol = Symbol::new(205u32);
    pub const Ready: Symbol = Symbol::new(206u32);
    pub const Reborrow: Symbol = Symbol::new(207u32);
    pub const RefCell: Symbol = Symbol::new(208u32);
    pub const Reference: Symbol = Symbol::new(209u32);
    pub const Relaxed: Symbol = Symbol::new(210u32);
    pub const Release: Symbol = Symbol::new(211u32);
    pub const Result: Symbol = Symbol::new(212u32);
    pub const ResumeTy: Symbol = Symbol::new(213u32);
    pub const Reverse: Symbol = Symbol::new(214u32);
    pub const Rust: Symbol = Symbol::new(215u32);
    pub const RustEmbed: Symbol = Symbol::new(216u32);
    pub const RustaceansAreAwesome: Symbol = Symbol::new(217u32);
    pub const RwLock: Symbol = Symbol::new(218u32);
    pub const RwLockReadGuard: Symbol = Symbol::new(219u32);
    pub const RwLockWriteGuard: Symbol = Symbol::new(220u32);
    pub const SelfTy: Symbol = Symbol::new(221u32);
    pub const Send: Symbol = Symbol::new(222u32);
    pub const SeqCst: Symbol = Symbol::new(223u32);
    pub const Sized: Symbol = Symbol::new(224u32);
    pub const Slice: Symbol = Symbol::new(225u32);
    pub const SliceIndex: Symbol = Symbol::new(226u32);
    pub const Some: Symbol = Symbol::new(227u32);
    pub const Source: Symbol = Symbol::new(228u32);
    pub const SpanCtxt: Symbol = Symbol::new(229u32);
    pub const StdinLock: Symbol = Symbol::new(230u32);
    pub const Str: Symbol = Symbol::new(231u32);
    pub const String: Symbol = Symbol::new(232u32);
    pub const Struct: Symbol = Symbol::new(233u32);
    pub const StructuralPartialEq: Symbol = Symbol::new(234u32);
    pub const SymbolIntern: Symbol = Symbol::new(235u32);
    pub const Sync: Symbol = Symbol::new(236u32);
    pub const SyncUnsafeCell: Symbol = Symbol::new(237u32);
    pub const Target: Symbol = Symbol::new(238u32);
    pub const This: Symbol = Symbol::new(239u32);
    pub const TokenStream: Symbol = Symbol::new(240u32);
    pub const TrivialClone: Symbol = Symbol::new(241u32);
    pub const Try: Symbol = Symbol::new(242u32);
    pub const TryCaptureGeneric: Symbol = Symbol::new(243u32);
    pub const TryCapturePrintable: Symbol = Symbol::new(244u32);
    pub const TryFrom: Symbol = Symbol::new(245u32);
    pub const TryInto: Symbol = Symbol::new(246u32);
    pub const Tuple: Symbol = Symbol::new(247u32);
    pub const Ty: Symbol = Symbol::new(248u32);
    pub const TyCtxt: Symbol = Symbol::new(249u32);
    pub const TyKind: Symbol = Symbol::new(250u32);
    pub const Type: Symbol = Symbol::new(251u32);
    pub const Union: Symbol = Symbol::new(252u32);
    pub const Unresolved: Symbol = Symbol::new(253u32);
    pub const Unsize: Symbol = Symbol::new(254u32);
    pub const Vec: Symbol = Symbol::new(255u32);
    pub const Wrapper: Symbol = Symbol::new(256u32);
    pub const _DECLS: Symbol = Symbol::new(257u32);
    pub const __H: Symbol = Symbol::new(258u32);
    pub const __S: Symbol = Symbol::new(259u32);
    pub const __awaitee: Symbol = Symbol::new(260u32);
    pub const __try_var: Symbol = Symbol::new(261u32);
    pub const _t: Symbol = Symbol::new(262u32);
    pub const _task_context: Symbol = Symbol::new(263u32);
    pub const a32: Symbol = Symbol::new(264u32);
    pub const aarch64: Symbol = Symbol::new(265u32);
    pub const aarch64_target_feature: Symbol = Symbol::new(266u32);
    pub const aarch64_unstable_target_feature: Symbol = Symbol::new(267u32);
    pub const aarch64_ver_target_feature: Symbol = Symbol::new(268u32);
    pub const abi: Symbol = Symbol::new(269u32);
    pub const abi_amdgpu_kernel: Symbol = Symbol::new(270u32);
    pub const abi_avr_interrupt: Symbol = Symbol::new(271u32);
    pub const abi_c_cmse_nonsecure_call: Symbol = Symbol::new(272u32);
    pub const abi_cmse_nonsecure_call: Symbol = Symbol::new(273u32);
    pub const abi_custom: Symbol = Symbol::new(274u32);
    pub const abi_efiapi: Symbol = Symbol::new(275u32);
    pub const abi_gpu_kernel: Symbol = Symbol::new(276u32);
    pub const abi_msp430_interrupt: Symbol = Symbol::new(277u32);
    pub const abi_ptx: Symbol = Symbol::new(278u32);
    pub const abi_riscv_interrupt: Symbol = Symbol::new(279u32);
    pub const abi_swift: Symbol = Symbol::new(280u32);
    pub const abi_sysv64: Symbol = Symbol::new(281u32);
    pub const abi_thiscall: Symbol = Symbol::new(282u32);
    pub const abi_unadjusted: Symbol = Symbol::new(283u32);
    pub const abi_vectorcall: Symbol = Symbol::new(284u32);
    pub const abi_x86_interrupt: Symbol = Symbol::new(285u32);
    pub const abort: Symbol = Symbol::new(286u32);
    pub const add: Symbol = Symbol::new(287u32);
    pub const add_assign: Symbol = Symbol::new(288u32);
    pub const add_with_overflow: Symbol = Symbol::new(289u32);
    pub const address: Symbol = Symbol::new(290u32);
    pub const adt_const_params: Symbol = Symbol::new(291u32);
    pub const advanced_slice_patterns: Symbol = Symbol::new(292u32);
    pub const adx_target_feature: Symbol = Symbol::new(293u32);
    pub const aes: Symbol = Symbol::new(294u32);
    pub const aggregate_raw_ptr: Symbol = Symbol::new(295u32);
    pub const alias: Symbol = Symbol::new(296u32);
    pub const align: Symbol = Symbol::new(297u32);
    pub const align_of: Symbol = Symbol::new(298u32);
    pub const align_of_val: Symbol = Symbol::new(299u32);
    pub const alignment: Symbol = Symbol::new(300u32);
    pub const all: Symbol = Symbol::new(301u32);
    pub const alloc: Symbol = Symbol::new(302u32);
    pub const alloc_error_handler: Symbol = Symbol::new(303u32);
    pub const alloc_layout: Symbol = Symbol::new(304u32);
    pub const alloc_zeroed: Symbol = Symbol::new(305u32);
    pub const allocator: Symbol = Symbol::new(306u32);
    pub const allocator_api: Symbol = Symbol::new(307u32);
    pub const allocator_internals: Symbol = Symbol::new(308u32);
    pub const allow: Symbol = Symbol::new(309u32);
    pub const allow_fail: Symbol = Symbol::new(310u32);
    pub const allow_internal_unsafe: Symbol = Symbol::new(311u32);
    pub const allow_internal_unstable: Symbol = Symbol::new(312u32);
    pub const altivec: Symbol = Symbol::new(313u32);
    pub const alu32: Symbol = Symbol::new(314u32);
    pub const always: Symbol = Symbol::new(315u32);
    pub const amdgpu: Symbol = Symbol::new(316u32);
    pub const amdgpu_dispatch_ptr: Symbol = Symbol::new(317u32);
    pub const analysis: Symbol = Symbol::new(318u32);
    pub const and: Symbol = Symbol::new(319u32);
    pub const and_then: Symbol = Symbol::new(320u32);
    pub const anon: Symbol = Symbol::new(321u32);
    pub const anon_assoc: Symbol = Symbol::new(322u32);
    pub const anonymous_lifetime_in_impl_trait: Symbol = Symbol::new(323u32);
    pub const any: Symbol = Symbol::new(324u32);
    pub const apx_target_feature: Symbol = Symbol::new(325u32);
    pub const arbitrary_enum_discriminant: Symbol = Symbol::new(326u32);
    pub const arbitrary_self_types: Symbol = Symbol::new(327u32);
    pub const arbitrary_self_types_pointers: Symbol = Symbol::new(328u32);
    pub const areg: Symbol = Symbol::new(329u32);
    pub const args: Symbol = Symbol::new(330u32);
    pub const arith_offset: Symbol = Symbol::new(331u32);
    pub const arm: Symbol = Symbol::new(332u32);
    pub const arm64ec: Symbol = Symbol::new(333u32);
    pub const arm_a32: Symbol = Symbol::new(334u32);
    pub const arm_t32: Symbol = Symbol::new(335u32);
    pub const arm_target_feature: Symbol = Symbol::new(336u32);
    pub const array: Symbol = Symbol::new(337u32);
    pub const as_dash_needed: Symbol = Symbol::new(338u32);
    pub const as_ref: Symbol = Symbol::new(339u32);
    pub const asm: Symbol = Symbol::new(340u32);
    pub const asm_cfg: Symbol = Symbol::new(341u32);
    pub const asm_const: Symbol = Symbol::new(342u32);
    pub const asm_const_ptr: Symbol = Symbol::new(343u32);
    pub const asm_experimental_arch: Symbol = Symbol::new(344u32);
    pub const asm_experimental_reg: Symbol = Symbol::new(345u32);
    pub const asm_goto: Symbol = Symbol::new(346u32);
    pub const asm_goto_with_outputs: Symbol = Symbol::new(347u32);
    pub const asm_sym: Symbol = Symbol::new(348u32);
    pub const asm_unwind: Symbol = Symbol::new(349u32);
    pub const assert: Symbol = Symbol::new(350u32);
    pub const assert_eq: Symbol = Symbol::new(351u32);
    pub const assert_eq_macro: Symbol = Symbol::new(352u32);
    pub const assert_fields_are_eq: Symbol = Symbol::new(353u32);
    pub const assert_inhabited: Symbol = Symbol::new(354u32);
    pub const assert_macro: Symbol = Symbol::new(355u32);
    pub const assert_mem_uninitialized_valid: Symbol = Symbol::new(356u32);
    pub const assert_ne_macro: Symbol = Symbol::new(357u32);
    pub const assert_receiver_is_total_eq: Symbol = Symbol::new(358u32);
    pub const assert_zero_valid: Symbol = Symbol::new(359u32);
    pub const asserting: Symbol = Symbol::new(360u32);
    pub const associated_const_equality: Symbol = Symbol::new(361u32);
    pub const associated_consts: Symbol = Symbol::new(362u32);
    pub const associated_type_bounds: Symbol = Symbol::new(363u32);
    pub const associated_type_defaults: Symbol = Symbol::new(364u32);
    pub const associated_types: Symbol = Symbol::new(365u32);
    pub const assume: Symbol = Symbol::new(366u32);
    pub const assume_init: Symbol = Symbol::new(367u32);
    pub const asterisk: Symbol = Symbol::new(368u32);
    pub const async_await: Symbol = Symbol::new(369u32);
    pub const async_call: Symbol = Symbol::new(370u32);
    pub const async_call_mut: Symbol = Symbol::new(371u32);
    pub const async_call_once: Symbol = Symbol::new(372u32);
    pub const async_closure: Symbol = Symbol::new(373u32);
    pub const async_drop: Symbol = Symbol::new(374u32);
    pub const async_drop_in_place: Symbol = Symbol::new(375u32);
    pub const async_fn: Symbol = Symbol::new(376u32);
    pub const async_fn_in_dyn_trait: Symbol = Symbol::new(377u32);
    pub const async_fn_in_trait: Symbol = Symbol::new(378u32);
    pub const async_fn_kind_helper: Symbol = Symbol::new(379u32);
    pub const async_fn_kind_upvars: Symbol = Symbol::new(380u32);
    pub const async_fn_mut: Symbol = Symbol::new(381u32);
    pub const async_fn_once: Symbol = Symbol::new(382u32);
    pub const async_fn_once_output: Symbol = Symbol::new(383u32);
    pub const async_fn_track_caller: Symbol = Symbol::new(384u32);
    pub const async_fn_traits: Symbol = Symbol::new(385u32);
    pub const async_for_loop: Symbol = Symbol::new(386u32);
    pub const async_gen_internals: Symbol = Symbol::new(387u32);
    pub const async_iterator: Symbol = Symbol::new(388u32);
    pub const async_iterator_poll_next: Symbol = Symbol::new(389u32);
    pub const async_trait_bounds: Symbol = Symbol::new(390u32);
    pub const atomic: Symbol = Symbol::new(391u32);
    pub const atomic_and: Symbol = Symbol::new(392u32);
    pub const atomic_cxchg: Symbol = Symbol::new(393u32);
    pub const atomic_cxchgweak: Symbol = Symbol::new(394u32);
    pub const atomic_fence: Symbol = Symbol::new(395u32);
    pub const atomic_load: Symbol = Symbol::new(396u32);
    pub const atomic_max: Symbol = Symbol::new(397u32);
    pub const atomic_min: Symbol = Symbol::new(398u32);
    pub const atomic_nand: Symbol = Symbol::new(399u32);
    pub const atomic_or: Symbol = Symbol::new(400u32);
    pub const atomic_singlethreadfence: Symbol = Symbol::new(401u32);
    pub const atomic_store: Symbol = Symbol::new(402u32);
    pub const atomic_umax: Symbol = Symbol::new(403u32);
    pub const atomic_umin: Symbol = Symbol::new(404u32);
    pub const atomic_xadd: Symbol = Symbol::new(405u32);
    pub const atomic_xchg: Symbol = Symbol::new(406u32);
    pub const atomic_xor: Symbol = Symbol::new(407u32);
    pub const atomic_xsub: Symbol = Symbol::new(408u32);
    pub const atomics: Symbol = Symbol::new(409u32);
    pub const att_syntax: Symbol = Symbol::new(410u32);
    pub const attr: Symbol = Symbol::new(411u32);
    pub const attr_literals: Symbol = Symbol::new(412u32);
    pub const attribute: Symbol = Symbol::new(413u32);
    pub const attributes: Symbol = Symbol::new(414u32);
    pub const audit_that: Symbol = Symbol::new(415u32);
    pub const augmented_assignments: Symbol = Symbol::new(416u32);
    pub const auto_cfg: Symbol = Symbol::new(417u32);
    pub const auto_traits: Symbol = Symbol::new(418u32);
    pub const autodiff: Symbol = Symbol::new(419u32);
    pub const autodiff_forward: Symbol = Symbol::new(420u32);
    pub const autodiff_reverse: Symbol = Symbol::new(421u32);
    pub const automatically_derived: Symbol = Symbol::new(422u32);
    pub const available_externally: Symbol = Symbol::new(423u32);
    pub const avr: Symbol = Symbol::new(424u32);
    pub const avr_target_feature: Symbol = Symbol::new(425u32);
    pub const avx: Symbol = Symbol::new(426u32);
    pub const avx10_target_feature: Symbol = Symbol::new(427u32);
    pub const avx512_target_feature: Symbol = Symbol::new(428u32);
    pub const avx512bw: Symbol = Symbol::new(429u32);
    pub const avx512f: Symbol = Symbol::new(430u32);
    pub const await_macro: Symbol = Symbol::new(431u32);
    pub const backchain: Symbol = Symbol::new(432u32);
    pub const backend_repr: Symbol = Symbol::new(433u32);
    pub const begin_panic: Symbol = Symbol::new(434u32);
    pub const bench: Symbol = Symbol::new(435u32);
    pub const bevy_ecs: Symbol = Symbol::new(436u32);
    pub const bikeshed: Symbol = Symbol::new(437u32);
    pub const bikeshed_guaranteed_no_drop: Symbol = Symbol::new(438u32);
    pub const bin: Symbol = Symbol::new(439u32);
    pub const bind_by_move_pattern_guards: Symbol = Symbol::new(440u32);
    pub const bindings_after_at: Symbol = Symbol::new(441u32);
    pub const bitand: Symbol = Symbol::new(442u32);
    pub const bitand_assign: Symbol = Symbol::new(443u32);
    pub const bitor: Symbol = Symbol::new(444u32);
    pub const bitor_assign: Symbol = Symbol::new(445u32);
    pub const bitreverse: Symbol = Symbol::new(446u32);
    pub const bits: Symbol = Symbol::new(447u32);
    pub const bitxor: Symbol = Symbol::new(448u32);
    pub const bitxor_assign: Symbol = Symbol::new(449u32);
    pub const black_box: Symbol = Symbol::new(450u32);
    pub const block: Symbol = Symbol::new(451u32);
    pub const blocking: Symbol = Symbol::new(452u32);
    pub const bool: Symbol = Symbol::new(453u32);
    pub const borrowck_graphviz_format: Symbol = Symbol::new(454u32);
    pub const borrowck_graphviz_postflow: Symbol = Symbol::new(455u32);
    pub const box_new: Symbol = Symbol::new(456u32);
    pub const box_patterns: Symbol = Symbol::new(457u32);
    pub const box_syntax: Symbol = Symbol::new(458u32);
    pub const boxed_slice: Symbol = Symbol::new(459u32);
    pub const bpf: Symbol = Symbol::new(460u32);
    pub const bpf_target_feature: Symbol = Symbol::new(461u32);
    pub const braced_empty_structs: Symbol = Symbol::new(462u32);
    pub const branch: Symbol = Symbol::new(463u32);
    pub const breakpoint: Symbol = Symbol::new(464u32);
    pub const breg: Symbol = Symbol::new(465u32);
    pub const bridge: Symbol = Symbol::new(466u32);
    pub const bswap: Symbol = Symbol::new(467u32);
    pub const built: Symbol = Symbol::new(468u32);
    pub const builtin_syntax: Symbol = Symbol::new(469u32);
    pub const bundle: Symbol = Symbol::new(470u32);
    pub const c_dash_variadic: Symbol = Symbol::new(471u32);
    pub const c_str_literals: Symbol = Symbol::new(472u32);
    pub const c_unwind: Symbol = Symbol::new(473u32);
    pub const c_variadic: Symbol = Symbol::new(474u32);
    pub const c_variadic_experimental_arch: Symbol = Symbol::new(475u32);
    pub const c_variadic_naked_functions: Symbol = Symbol::new(476u32);
    pub const c_void: Symbol = Symbol::new(477u32);
    pub const call: Symbol = Symbol::new(478u32);
    pub const call_mut: Symbol = Symbol::new(479u32);
    pub const call_once: Symbol = Symbol::new(480u32);
    pub const call_once_future: Symbol = Symbol::new(481u32);
    pub const call_ref_future: Symbol = Symbol::new(482u32);
    pub const caller: Symbol = Symbol::new(483u32);
    pub const caller_location: Symbol = Symbol::new(484u32);
    pub const capture_disjoint_fields: Symbol = Symbol::new(485u32);
    pub const carrying_mul_add: Symbol = Symbol::new(486u32);
    pub const carryless_mul: Symbol = Symbol::new(487u32);
    pub const catch_unwind: Symbol = Symbol::new(488u32);
    pub const cause: Symbol = Symbol::new(489u32);
    pub const cdylib: Symbol = Symbol::new(490u32);
    pub const ceilf16: Symbol = Symbol::new(491u32);
    pub const ceilf32: Symbol = Symbol::new(492u32);
    pub const ceilf64: Symbol = Symbol::new(493u32);
    pub const ceilf128: Symbol = Symbol::new(494u32);
    pub const cfg: Symbol = Symbol::new(495u32);
    pub const cfg_accessible: Symbol = Symbol::new(496u32);
    pub const cfg_attr: Symbol = Symbol::new(497u32);
    pub const cfg_attr_multi: Symbol = Symbol::new(498u32);
    pub const cfg_boolean_literals: Symbol = Symbol::new(499u32);
    pub const cfg_contract_checks: Symbol = Symbol::new(500u32);
    pub const cfg_doctest: Symbol = Symbol::new(501u32);
    pub const cfg_eval: Symbol = Symbol::new(502u32);
    pub const cfg_overflow_checks: Symbol = Symbol::new(503u32);
    pub const cfg_panic: Symbol = Symbol::new(504u32);
    pub const cfg_relocation_model: Symbol = Symbol::new(505u32);
    pub const cfg_sanitize: Symbol = Symbol::new(506u32);
    pub const cfg_sanitizer_cfi: Symbol = Symbol::new(507u32);
    pub const cfg_select: Symbol = Symbol::new(508u32);
    pub const cfg_target_abi: Symbol = Symbol::new(509u32);
    pub const cfg_target_compact: Symbol = Symbol::new(510u32);
    pub const cfg_target_feature: Symbol = Symbol::new(511u32);
    pub const cfg_target_has_atomic: Symbol = Symbol::new(512u32);
    pub const cfg_target_has_atomic_equal_alignment: Symbol =
        Symbol::new(513u32);
    pub const cfg_target_has_reliable_f16_f128: Symbol = Symbol::new(514u32);
    pub const cfg_target_has_threads: Symbol = Symbol::new(515u32);
    pub const cfg_target_object_format: Symbol = Symbol::new(516u32);
    pub const cfg_target_thread_local: Symbol = Symbol::new(517u32);
    pub const cfg_target_vendor: Symbol = Symbol::new(518u32);
    pub const cfg_ub_checks: Symbol = Symbol::new(519u32);
    pub const cfg_version: Symbol = Symbol::new(520u32);
    pub const cfi: Symbol = Symbol::new(521u32);
    pub const cfi_encoding: Symbol = Symbol::new(522u32);
    pub const char: Symbol = Symbol::new(523u32);
    pub const checked_type_aliases: Symbol = Symbol::new(524u32);
    pub const clflushopt_target_feature: Symbol = Symbol::new(525u32);
    pub const client: Symbol = Symbol::new(526u32);
    pub const clippy: Symbol = Symbol::new(527u32);
    pub const clobber_abi: Symbol = Symbol::new(528u32);
    pub const clone: Symbol = Symbol::new(529u32);
    pub const clone_closures: Symbol = Symbol::new(530u32);
    pub const clone_fn: Symbol = Symbol::new(531u32);
    pub const clone_from: Symbol = Symbol::new(532u32);
    pub const close_fn: Symbol = Symbol::new(533u32);
    pub const closure: Symbol = Symbol::new(534u32);
    pub const closure_lifetime_binder: Symbol = Symbol::new(535u32);
    pub const closure_to_fn_coercion: Symbol = Symbol::new(536u32);
    pub const closure_track_caller: Symbol = Symbol::new(537u32);
    pub const cmp: Symbol = Symbol::new(538u32);
    pub const cmp_ord_max: Symbol = Symbol::new(539u32);
    pub const cmp_ord_min: Symbol = Symbol::new(540u32);
    pub const cmp_partialeq_eq: Symbol = Symbol::new(541u32);
    pub const cmp_partialeq_ne: Symbol = Symbol::new(542u32);
    pub const cmp_partialord_cmp: Symbol = Symbol::new(543u32);
    pub const cmp_partialord_ge: Symbol = Symbol::new(544u32);
    pub const cmp_partialord_gt: Symbol = Symbol::new(545u32);
    pub const cmp_partialord_le: Symbol = Symbol::new(546u32);
    pub const cmp_partialord_lt: Symbol = Symbol::new(547u32);
    pub const cmpxchg16b_target_feature: Symbol = Symbol::new(548u32);
    pub const cmse_nonsecure_entry: Symbol = Symbol::new(549u32);
    pub const code: Symbol = Symbol::new(550u32);
    pub const coerce_pointee_validated: Symbol = Symbol::new(551u32);
    pub const coerce_shared: Symbol = Symbol::new(552u32);
    pub const coerce_shared_target: Symbol = Symbol::new(553u32);
    pub const coerce_unsized: Symbol = Symbol::new(554u32);
    pub const coff: Symbol = Symbol::new(555u32);
    pub const cold: Symbol = Symbol::new(556u32);
    pub const cold_path: Symbol = Symbol::new(557u32);
    pub const collapse_debuginfo: Symbol = Symbol::new(558u32);
    pub const column: Symbol = Symbol::new(559u32);
    pub const common: Symbol = Symbol::new(560u32);
    pub const compare_bytes: Symbol = Symbol::new(561u32);
    pub const compare_exchange: Symbol = Symbol::new(562u32);
    pub const compare_exchange_weak: Symbol = Symbol::new(563u32);
    pub const compile_error: Symbol = Symbol::new(564u32);
    pub const compiler: Symbol = Symbol::new(565u32);
    pub const compiler_builtins: Symbol = Symbol::new(566u32);
    pub const compiler_copy: Symbol = Symbol::new(567u32);
    pub const compiler_fence: Symbol = Symbol::new(568u32);
    pub const compiler_move: Symbol = Symbol::new(569u32);
    pub const complex: Symbol = Symbol::new(570u32);
    pub const concat: Symbol = Symbol::new(571u32);
    pub const concat_bytes: Symbol = Symbol::new(572u32);
    pub const conservative_impl_trait: Symbol = Symbol::new(573u32);
    pub const console: Symbol = Symbol::new(574u32);
    pub const const_allocate: Symbol = Symbol::new(575u32);
    pub const const_async_blocks: Symbol = Symbol::new(576u32);
    pub const const_block_items: Symbol = Symbol::new(577u32);
    pub const const_c_variadic: Symbol = Symbol::new(578u32);
    pub const const_closures: Symbol = Symbol::new(579u32);
    pub const const_compare_raw_pointers: Symbol = Symbol::new(580u32);
    pub const const_constructor: Symbol = Symbol::new(581u32);
    pub const const_continue: Symbol = Symbol::new(582u32);
    pub const const_deallocate: Symbol = Symbol::new(583u32);
    pub const const_destruct: Symbol = Symbol::new(584u32);
    pub const const_eval_limit: Symbol = Symbol::new(585u32);
    pub const const_eval_select: Symbol = Symbol::new(586u32);
    pub const const_evaluatable_checked: Symbol = Symbol::new(587u32);
    pub const const_extern_fn: Symbol = Symbol::new(588u32);
    pub const const_fn: Symbol = Symbol::new(589u32);
    pub const const_fn_floating_point_arithmetic: Symbol =
        Symbol::new(590u32);
    pub const const_fn_fn_ptr_basics: Symbol = Symbol::new(591u32);
    pub const const_fn_trait_bound: Symbol = Symbol::new(592u32);
    pub const const_fn_transmute: Symbol = Symbol::new(593u32);
    pub const const_fn_union: Symbol = Symbol::new(594u32);
    pub const const_fn_unsize: Symbol = Symbol::new(595u32);
    pub const const_for: Symbol = Symbol::new(596u32);
    pub const const_format_args: Symbol = Symbol::new(597u32);
    pub const const_generics: Symbol = Symbol::new(598u32);
    pub const const_generics_defaults: Symbol = Symbol::new(599u32);
    pub const const_if_match: Symbol = Symbol::new(600u32);
    pub const const_impl_trait: Symbol = Symbol::new(601u32);
    pub const const_in_array_repeat_expressions: Symbol = Symbol::new(602u32);
    pub const const_indexing: Symbol = Symbol::new(603u32);
    pub const const_let: Symbol = Symbol::new(604u32);
    pub const const_loop: Symbol = Symbol::new(605u32);
    pub const const_make_global: Symbol = Symbol::new(606u32);
    pub const const_mut_refs: Symbol = Symbol::new(607u32);
    pub const const_panic: Symbol = Symbol::new(608u32);
    pub const const_panic_fmt: Symbol = Symbol::new(609u32);
    pub const const_param_ty: Symbol = Symbol::new(610u32);
    pub const const_param_ty_unchecked: Symbol = Symbol::new(611u32);
    pub const const_precise_live_drops: Symbol = Symbol::new(612u32);
    pub const const_ptr_cast: Symbol = Symbol::new(613u32);
    pub const const_raw_ptr_deref: Symbol = Symbol::new(614u32);
    pub const const_raw_ptr_to_usize_cast: Symbol = Symbol::new(615u32);
    pub const const_refs_to_cell: Symbol = Symbol::new(616u32);
    pub const const_refs_to_static: Symbol = Symbol::new(617u32);
    pub const const_trait_bound_opt_out: Symbol = Symbol::new(618u32);
    pub const const_trait_impl: Symbol = Symbol::new(619u32);
    pub const const_try: Symbol = Symbol::new(620u32);
    pub const const_ty_placeholder: Symbol = Symbol::new(621u32);
    pub const constant: Symbol = Symbol::new(622u32);
    pub const constructor: Symbol = Symbol::new(623u32);
    pub const contract_build_check_ensures: Symbol = Symbol::new(624u32);
    pub const contract_check_ensures: Symbol = Symbol::new(625u32);
    pub const contract_check_requires: Symbol = Symbol::new(626u32);
    pub const contract_checks: Symbol = Symbol::new(627u32);
    pub const contracts: Symbol = Symbol::new(628u32);
    pub const contracts_ensures: Symbol = Symbol::new(629u32);
    pub const contracts_internals: Symbol = Symbol::new(630u32);
    pub const contracts_requires: Symbol = Symbol::new(631u32);
    pub const convert: Symbol = Symbol::new(632u32);
    pub const coprocessor: Symbol = Symbol::new(633u32);
    pub const copy: Symbol = Symbol::new(634u32);
    pub const copy_closures: Symbol = Symbol::new(635u32);
    pub const copy_nonoverlapping: Symbol = Symbol::new(636u32);
    pub const copysignf16: Symbol = Symbol::new(637u32);
    pub const copysignf32: Symbol = Symbol::new(638u32);
    pub const copysignf64: Symbol = Symbol::new(639u32);
    pub const copysignf128: Symbol = Symbol::new(640u32);
    pub const core: Symbol = Symbol::new(641u32);
    pub const core_panic: Symbol = Symbol::new(642u32);
    pub const core_panic_2015_macro: Symbol = Symbol::new(643u32);
    pub const core_panic_macro: Symbol = Symbol::new(644u32);
    pub const coroutine: Symbol = Symbol::new(645u32);
    pub const coroutine_clone: Symbol = Symbol::new(646u32);
    pub const coroutine_resume: Symbol = Symbol::new(647u32);
    pub const coroutine_return: Symbol = Symbol::new(648u32);
    pub const coroutine_state: Symbol = Symbol::new(649u32);
    pub const coroutine_yield: Symbol = Symbol::new(650u32);
    pub const coroutines: Symbol = Symbol::new(651u32);
    pub const cos: Symbol = Symbol::new(652u32);
    pub const count: Symbol = Symbol::new(653u32);
    pub const covariant_unsafe_cell: Symbol = Symbol::new(654u32);
    pub const coverage: Symbol = Symbol::new(655u32);
    pub const coverage_attribute: Symbol = Symbol::new(656u32);
    pub const cr: Symbol = Symbol::new(657u32);
    pub const crate_in_paths: Symbol = Symbol::new(658u32);
    pub const crate_local: Symbol = Symbol::new(659u32);
    pub const crate_name: Symbol = Symbol::new(660u32);
    pub const crate_type: Symbol = Symbol::new(661u32);
    pub const crate_visibility_modifier: Symbol = Symbol::new(662u32);
    pub const crt_dash_static: Symbol = Symbol::new(663u32);
    pub const csky: Symbol = Symbol::new(664u32);
    pub const csky_target_feature: Symbol = Symbol::new(665u32);
    pub const cstr_type: Symbol = Symbol::new(666u32);
    pub const cstring_type: Symbol = Symbol::new(667u32);
    pub const ctlz: Symbol = Symbol::new(668u32);
    pub const ctlz_nonzero: Symbol = Symbol::new(669u32);
    pub const ctpop: Symbol = Symbol::new(670u32);
    pub const ctr: Symbol = Symbol::new(671u32);
    pub const cttz: Symbol = Symbol::new(672u32);
    pub const cttz_nonzero: Symbol = Symbol::new(673u32);
    pub const custom_attribute: Symbol = Symbol::new(674u32);
    pub const custom_code_classes_in_docs: Symbol = Symbol::new(675u32);
    pub const custom_derive: Symbol = Symbol::new(676u32);
    pub const custom_inner_attributes: Symbol = Symbol::new(677u32);
    pub const custom_mir: Symbol = Symbol::new(678u32);
    pub const custom_test_frameworks: Symbol = Symbol::new(679u32);
    pub const d32: Symbol = Symbol::new(680u32);
    pub const dead_code: Symbol = Symbol::new(681u32);
    pub const dead_code_pub_in_binary: Symbol = Symbol::new(682u32);
    pub const dealloc: Symbol = Symbol::new(683u32);
    pub const debug: Symbol = Symbol::new(684u32);
    pub const debug_assert_eq_macro: Symbol = Symbol::new(685u32);
    pub const debug_assert_macro: Symbol = Symbol::new(686u32);
    pub const debug_assert_ne_macro: Symbol = Symbol::new(687u32);
    pub const debug_assertions: Symbol = Symbol::new(688u32);
    pub const debug_struct_fields_finish: Symbol = Symbol::new(689u32);
    pub const debug_tuple_fields_finish: Symbol = Symbol::new(690u32);
    pub const debugger_visualizer: Symbol = Symbol::new(691u32);
    pub const decl_macro: Symbol = Symbol::new(692u32);
    pub const declare_lint_pass: Symbol = Symbol::new(693u32);
    pub const decorated: Symbol = Symbol::new(694u32);
    pub const default_alloc_error_handler: Symbol = Symbol::new(695u32);
    pub const default_field_values: Symbol = Symbol::new(696u32);
    pub const default_fn: Symbol = Symbol::new(697u32);
    pub const default_lib_allocator: Symbol = Symbol::new(698u32);
    pub const default_method_body_is_const: Symbol = Symbol::new(699u32);
    pub const default_trait1: Symbol = Symbol::new(700u32);
    pub const default_trait2: Symbol = Symbol::new(701u32);
    pub const default_trait3: Symbol = Symbol::new(702u32);
    pub const default_trait4: Symbol = Symbol::new(703u32);
    pub const default_type_parameter_fallback: Symbol = Symbol::new(704u32);
    pub const default_type_params: Symbol = Symbol::new(705u32);
    pub const define_opaque: Symbol = Symbol::new(706u32);
    pub const deny: Symbol = Symbol::new(707u32);
    pub const deprecated: Symbol = Symbol::new(708u32);
    pub const deprecated_safe: Symbol = Symbol::new(709u32);
    pub const deprecated_suggestion: Symbol = Symbol::new(710u32);
    pub const deref: Symbol = Symbol::new(711u32);
    pub const deref_method: Symbol = Symbol::new(712u32);
    pub const deref_mut: Symbol = Symbol::new(713u32);
    pub const deref_patterns: Symbol = Symbol::new(714u32);
    pub const deref_pure: Symbol = Symbol::new(715u32);
    pub const deref_target: Symbol = Symbol::new(716u32);
    pub const derive: Symbol = Symbol::new(717u32);
    pub const derive_const: Symbol = Symbol::new(718u32);
    pub const derive_const_issue: Symbol = Symbol::new(719u32);
    pub const derive_default_enum: Symbol = Symbol::new(720u32);
    pub const derive_from: Symbol = Symbol::new(721u32);
    pub const derive_smart_pointer: Symbol = Symbol::new(722u32);
    pub const destruct: Symbol = Symbol::new(723u32);
    pub const destructuring_assignment: Symbol = Symbol::new(724u32);
    pub const diagnostic: Symbol = Symbol::new(725u32);
    pub const diagnostic_namespace: Symbol = Symbol::new(726u32);
    pub const diagnostic_on_const: Symbol = Symbol::new(727u32);
    pub const diagnostic_on_move: Symbol = Symbol::new(728u32);
    pub const diagnostic_on_type_error: Symbol = Symbol::new(729u32);
    pub const diagnostic_on_unknown: Symbol = Symbol::new(730u32);
    pub const diagnostic_on_unmatch_args: Symbol = Symbol::new(731u32);
    pub const diagnostic_on_unmatched_args: Symbol = Symbol::new(732u32);
    pub const diagnostic_opaque: Symbol = Symbol::new(733u32);
    pub const dialect: Symbol = Symbol::new(734u32);
    pub const direct: Symbol = Symbol::new(735u32);
    pub const direct_const_arg: Symbol = Symbol::new(736u32);
    pub const discriminant_kind: Symbol = Symbol::new(737u32);
    pub const discriminant_type: Symbol = Symbol::new(738u32);
    pub const discriminant_value: Symbol = Symbol::new(739u32);
    pub const disjoint_bitor: Symbol = Symbol::new(740u32);
    pub const dispatch_from_dyn: Symbol = Symbol::new(741u32);
    pub const div: Symbol = Symbol::new(742u32);
    pub const div_assign: Symbol = Symbol::new(743u32);
    pub const diverging_block_default: Symbol = Symbol::new(744u32);
    pub const dl: Symbol = Symbol::new(745u32);
    pub const do_not_recommend: Symbol = Symbol::new(746u32);
    pub const doc: Symbol = Symbol::new(747u32);
    pub const doc_alias: Symbol = Symbol::new(748u32);
    pub const doc_auto_cfg: Symbol = Symbol::new(749u32);
    pub const doc_cfg: Symbol = Symbol::new(750u32);
    pub const doc_cfg_hide: Symbol = Symbol::new(751u32);
    pub const doc_keyword: Symbol = Symbol::new(752u32);
    pub const doc_masked: Symbol = Symbol::new(753u32);
    pub const doc_notable_trait: Symbol = Symbol::new(754u32);
    pub const doc_primitive: Symbol = Symbol::new(755u32);
    pub const doc_spotlight: Symbol = Symbol::new(756u32);
    pub const doctest: Symbol = Symbol::new(757u32);
    pub const dotdot_in_tuple_patterns: Symbol = Symbol::new(758u32);
    pub const dotdoteq_in_patterns: Symbol = Symbol::new(759u32);
    pub const dreg: Symbol = Symbol::new(760u32);
    pub const dreg_low8: Symbol = Symbol::new(761u32);
    pub const dreg_low16: Symbol = Symbol::new(762u32);
    pub const drop: Symbol = Symbol::new(763u32);
    pub const drop_glue: Symbol = Symbol::new(764u32);
    pub const drop_in_place: Symbol = Symbol::new(765u32);
    pub const drop_types_in_const: Symbol = Symbol::new(766u32);
    pub const dropck_eyepatch: Symbol = Symbol::new(767u32);
    pub const dropck_parametricity: Symbol = Symbol::new(768u32);
    pub const dummy: Symbol = Symbol::new(769u32);
    pub const dummy_cgu_name: Symbol = Symbol::new(770u32);
    pub const dylib: Symbol = Symbol::new(771u32);
    pub const dyn_compatible_for_dispatch: Symbol = Symbol::new(772u32);
    pub const dyn_metadata: Symbol = Symbol::new(773u32);
    pub const dyn_star: Symbol = Symbol::new(774u32);
    pub const dyn_trait: Symbol = Symbol::new(775u32);
    pub const dynamic_no_pic: Symbol = Symbol::new(776u32);
    pub const edition_panic: Symbol = Symbol::new(777u32);
    pub const effective_target_features: Symbol = Symbol::new(778u32);
    pub const effects: Symbol = Symbol::new(779u32);
    pub const eh_personality: Symbol = Symbol::new(780u32);
    pub const eii: Symbol = Symbol::new(781u32);
    pub const eii_declaration: Symbol = Symbol::new(782u32);
    pub const eii_internals: Symbol = Symbol::new(783u32);
    pub const eii_shared_macro: Symbol = Symbol::new(784u32);
    pub const element_ty: Symbol = Symbol::new(785u32);
    pub const elf: Symbol = Symbol::new(786u32);
    pub const empty: Symbol = Symbol::new(787u32);
    pub const empty_braces: Symbol = Symbol::new(788u32);
    pub const empty_brackets: Symbol = Symbol::new(789u32);
    pub const empty_parens: Symbol = Symbol::new(790u32);
    pub const enable: Symbol = Symbol::new(791u32);
    pub const end: Symbol = Symbol::new(792u32);
    pub const entry_nops: Symbol = Symbol::new(793u32);
    pub const env: Symbol = Symbol::new(794u32);
    pub const eq: Symbol = Symbol::new(795u32);
    pub const ergonomic_clones: Symbol = Symbol::new(796u32);
    pub const ermsb_target_feature: Symbol = Symbol::new(797u32);
    pub const exact_div: Symbol = Symbol::new(798u32);
    pub const except: Symbol = Symbol::new(799u32);
    pub const exception: Symbol = Symbol::new(800u32);
    pub const exception_handling: Symbol = Symbol::new(801u32);
    pub const exclusive_range_pattern: Symbol = Symbol::new(802u32);
    pub const exhaustive_integer_patterns: Symbol = Symbol::new(803u32);
    pub const exhaustive_patterns: Symbol = Symbol::new(804u32);
    pub const existential_type: Symbol = Symbol::new(805u32);
    pub const exists: Symbol = Symbol::new(806u32);
    pub const exp: Symbol = Symbol::new(807u32);
    pub const exp2: Symbol = Symbol::new(808u32);
    pub const expand1: Symbol = Symbol::new(809u32);
    pub const expand2: Symbol = Symbol::new(810u32);
    pub const expect: Symbol = Symbol::new(811u32);
    pub const expected: Symbol = Symbol::new(812u32);
    pub const explicit_extern_abis: Symbol = Symbol::new(813u32);
    pub const explicit_generic_args_with_impl_trait: Symbol =
        Symbol::new(814u32);
    pub const explicit_tail_calls: Symbol = Symbol::new(815u32);
    pub const export_name: Symbol = Symbol::new(816u32);
    pub const export_stable: Symbol = Symbol::new(817u32);
    pub const export_symbols: Symbol = Symbol::new(818u32);
    pub const expr: Symbol = Symbol::new(819u32);
    pub const expr_2021: Symbol = Symbol::new(820u32);
    pub const expr_fragment_specifier_2024: Symbol = Symbol::new(821u32);
    pub const extended_key_value_attributes: Symbol = Symbol::new(822u32);
    pub const extended_varargs_abi_support: Symbol = Symbol::new(823u32);
    pub const extendedl32r: Symbol = Symbol::new(824u32);
    pub const extern_absolute_paths: Symbol = Symbol::new(825u32);
    pub const extern_crate_item_prelude: Symbol = Symbol::new(826u32);
    pub const extern_crate_self: Symbol = Symbol::new(827u32);
    pub const extern_in_paths: Symbol = Symbol::new(828u32);
    pub const extern_item_impls: Symbol = Symbol::new(829u32);
    pub const extern_prelude: Symbol = Symbol::new(830u32);
    pub const extern_system_varargs: Symbol = Symbol::new(831u32);
    pub const extern_types: Symbol = Symbol::new(832u32);
    pub const extern_weak: Symbol = Symbol::new(833u32);
    pub const external: Symbol = Symbol::new(834u32);
    pub const external_doc: Symbol = Symbol::new(835u32);
    pub const f16: Symbol = Symbol::new(836u32);
    pub const f16_nan: Symbol = Symbol::new(837u32);
    pub const f16c_target_feature: Symbol = Symbol::new(838u32);
    pub const f32: Symbol = Symbol::new(839u32);
    pub const f32_nan: Symbol = Symbol::new(840u32);
    pub const f64: Symbol = Symbol::new(841u32);
    pub const f64_nan: Symbol = Symbol::new(842u32);
    pub const f128: Symbol = Symbol::new(843u32);
    pub const f128_nan: Symbol = Symbol::new(844u32);
    pub const fabs: Symbol = Symbol::new(845u32);
    pub const fadd_algebraic: Symbol = Symbol::new(846u32);
    pub const fadd_fast: Symbol = Symbol::new(847u32);
    pub const fake_variadic: Symbol = Symbol::new(848u32);
    pub const fallback: Symbol = Symbol::new(849u32);
    pub const fdiv_algebraic: Symbol = Symbol::new(850u32);
    pub const fdiv_fast: Symbol = Symbol::new(851u32);
    pub const feature: Symbol = Symbol::new(852u32);
    pub const fence: Symbol = Symbol::new(853u32);
    pub const ferris: Symbol = Symbol::new(854u32);
    pub const fetch_update: Symbol = Symbol::new(855u32);
    pub const ffi_const: Symbol = Symbol::new(856u32);
    pub const ffi_pure: Symbol = Symbol::new(857u32);
    pub const ffi_returns_twice: Symbol = Symbol::new(858u32);
    pub const ffr: Symbol = Symbol::new(859u32);
    pub const field: Symbol = Symbol::new(860u32);
    pub const field_base: Symbol = Symbol::new(861u32);
    pub const field_init_shorthand: Symbol = Symbol::new(862u32);
    pub const field_of: Symbol = Symbol::new(863u32);
    pub const field_offset: Symbol = Symbol::new(864u32);
    pub const field_projections: Symbol = Symbol::new(865u32);
    pub const field_representing_type: Symbol = Symbol::new(866u32);
    pub const field_representing_type_actual_type_id: Symbol =
        Symbol::new(867u32);
    pub const field_representing_type_name: Symbol = Symbol::new(868u32);
    pub const field_representing_type_offset: Symbol = Symbol::new(869u32);
    pub const field_representing_type_raw: Symbol = Symbol::new(870u32);
    pub const field_type: Symbol = Symbol::new(871u32);
    pub const fields: Symbol = Symbol::new(872u32);
    pub const file: Symbol = Symbol::new(873u32);
    pub const final_associated_functions: Symbol = Symbol::new(874u32);
    pub const float_to_int_unchecked: Symbol = Symbol::new(875u32);
    pub const floorf16: Symbol = Symbol::new(876u32);
    pub const floorf32: Symbol = Symbol::new(877u32);
    pub const floorf64: Symbol = Symbol::new(878u32);
    pub const floorf128: Symbol = Symbol::new(879u32);
    pub const fma4_target_feature: Symbol = Symbol::new(880u32);
    pub const fmaf16: Symbol = Symbol::new(881u32);
    pub const fmaf32: Symbol = Symbol::new(882u32);
    pub const fmaf64: Symbol = Symbol::new(883u32);
    pub const fmaf128: Symbol = Symbol::new(884u32);
    pub const fmt: Symbol = Symbol::new(885u32);
    pub const fmt_debug: Symbol = Symbol::new(886u32);
    pub const fmul_algebraic: Symbol = Symbol::new(887u32);
    pub const fmul_fast: Symbol = Symbol::new(888u32);
    pub const fmuladdf16: Symbol = Symbol::new(889u32);
    pub const fmuladdf32: Symbol = Symbol::new(890u32);
    pub const fmuladdf64: Symbol = Symbol::new(891u32);
    pub const fmuladdf128: Symbol = Symbol::new(892u32);
    pub const fn_align: Symbol = Symbol::new(893u32);
    pub const fn_body: Symbol = Symbol::new(894u32);
    pub const fn_delegation: Symbol = Symbol::new(895u32);
    pub const fn_must_use: Symbol = Symbol::new(896u32);
    pub const fn_mut: Symbol = Symbol::new(897u32);
    pub const fn_once: Symbol = Symbol::new(898u32);
    pub const fn_once_output: Symbol = Symbol::new(899u32);
    pub const fn_ptr_as_ptr: Symbol = Symbol::new(900u32);
    pub const fn_ptr_from_ptr: Symbol = Symbol::new(901u32);
    pub const fn_ptr_trait: Symbol = Symbol::new(902u32);
    pub const fn_static: Symbol = Symbol::new(903u32);
    pub const forall: Symbol = Symbol::new(904u32);
    pub const forbid: Symbol = Symbol::new(905u32);
    pub const force_target_feature: Symbol = Symbol::new(906u32);
    pub const forget: Symbol = Symbol::new(907u32);
    pub const format_args: Symbol = Symbol::new(908u32);
    pub const format_args_capture: Symbol = Symbol::new(909u32);
    pub const format_args_nl: Symbol = Symbol::new(910u32);
    pub const format_argument: Symbol = Symbol::new(911u32);
    pub const format_arguments: Symbol = Symbol::new(912u32);
    pub const format_macro: Symbol = Symbol::new(913u32);
    pub const format_placeholder: Symbol = Symbol::new(914u32);
    pub const format_unsafe_arg: Symbol = Symbol::new(915u32);
    pub const fp: Symbol = Symbol::new(916u32);
    pub const fpregs: Symbol = Symbol::new(917u32);
    pub const framework: Symbol = Symbol::new(918u32);
    pub const freeze: Symbol = Symbol::new(919u32);
    pub const freeze_impls: Symbol = Symbol::new(920u32);
    pub const freg: Symbol = Symbol::new(921u32);
    pub const frem_algebraic: Symbol = Symbol::new(922u32);
    pub const frem_fast: Symbol = Symbol::new(923u32);
    pub const from: Symbol = Symbol::new(924u32);
    pub const from_desugaring: Symbol = Symbol::new(925u32);
    pub const from_iter: Symbol = Symbol::new(926u32);
    pub const from_output: Symbol = Symbol::new(927u32);
    pub const from_residual: Symbol = Symbol::new(928u32);
    pub const from_size_align_unchecked: Symbol = Symbol::new(929u32);
    pub const from_size_alignment_unchecked: Symbol = Symbol::new(930u32);
    pub const from_str: Symbol = Symbol::new(931u32);
    pub const from_str_nonconst: Symbol = Symbol::new(932u32);
    pub const from_usize: Symbol = Symbol::new(933u32);
    pub const from_yeet: Symbol = Symbol::new(934u32);
    pub const frontmatter: Symbol = Symbol::new(935u32);
    pub const fsub_algebraic: Symbol = Symbol::new(936u32);
    pub const fsub_fast: Symbol = Symbol::new(937u32);
    pub const full: Symbol = Symbol::new(938u32);
    pub const fundamental: Symbol = Symbol::new(939u32);
    pub const fused_iterator: Symbol = Symbol::new(940u32);
    pub const future_output: Symbol = Symbol::new(941u32);
    pub const future_trait: Symbol = Symbol::new(942u32);
    pub const fxsr: Symbol = Symbol::new(943u32);
    pub const gdb_script_file: Symbol = Symbol::new(944u32);
    pub const ge: Symbol = Symbol::new(945u32);
    pub const gen_blocks: Symbol = Symbol::new(946u32);
    pub const gen_future: Symbol = Symbol::new(947u32);
    pub const generator_clone: Symbol = Symbol::new(948u32);
    pub const generators: Symbol = Symbol::new(949u32);
    pub const generic_arg_infer: Symbol = Symbol::new(950u32);
    pub const generic_assert: Symbol = Symbol::new(951u32);
    pub const generic_associated_types: Symbol = Symbol::new(952u32);
    pub const generic_associated_types_extended: Symbol = Symbol::new(953u32);
    pub const generic_const_args: Symbol = Symbol::new(954u32);
    pub const generic_const_exprs: Symbol = Symbol::new(955u32);
    pub const generic_const_items: Symbol = Symbol::new(956u32);
    pub const generic_const_parameter_types: Symbol = Symbol::new(957u32);
    pub const generic_param_attrs: Symbol = Symbol::new(958u32);
    pub const generic_pattern_types: Symbol = Symbol::new(959u32);
    pub const generics: Symbol = Symbol::new(960u32);
    pub const get_context: Symbol = Symbol::new(961u32);
    pub const global_alloc_ty: Symbol = Symbol::new(962u32);
    pub const global_allocator: Symbol = Symbol::new(963u32);
    pub const global_asm: Symbol = Symbol::new(964u32);
    pub const global_registration: Symbol = Symbol::new(965u32);
    pub const globs: Symbol = Symbol::new(966u32);
    pub const gpu_kernel: Symbol = Symbol::new(967u32);
    pub const gpu_launch_sized_workgroup_mem: Symbol = Symbol::new(968u32);
    pub const gt: Symbol = Symbol::new(969u32);
    pub const guard: Symbol = Symbol::new(970u32);
    pub const guard_patterns: Symbol = Symbol::new(971u32);
    pub const half_open_range_patterns: Symbol = Symbol::new(972u32);
    pub const half_open_range_patterns_in_slices: Symbol =
        Symbol::new(973u32);
    pub const hash: Symbol = Symbol::new(974u32);
    pub const hexagon: Symbol = Symbol::new(975u32);
    pub const hexagon_target_feature: Symbol = Symbol::new(976u32);
    pub const hidden: Symbol = Symbol::new(977u32);
    pub const hide: Symbol = Symbol::new(978u32);
    pub const highpriinterrupts: Symbol = Symbol::new(979u32);
    pub const hint: Symbol = Symbol::new(980u32);
    pub const homogeneous_aggregate: Symbol = Symbol::new(981u32);
    pub const html_favicon_url: Symbol = Symbol::new(982u32);
    pub const html_logo_url: Symbol = Symbol::new(983u32);
    pub const html_no_source: Symbol = Symbol::new(984u32);
    pub const html_playground_url: Symbol = Symbol::new(985u32);
    pub const html_root_url: Symbol = Symbol::new(986u32);
    pub const hvx: Symbol = Symbol::new(987u32);
    pub const hvx_length64b: Symbol = Symbol::new(988u32);
    pub const hvx_length128b: Symbol = Symbol::new(989u32);
    pub const hwaddress: Symbol = Symbol::new(990u32);
    pub const i8: Symbol = Symbol::new(991u32);
    pub const i16: Symbol = Symbol::new(992u32);
    pub const i32: Symbol = Symbol::new(993u32);
    pub const i64: Symbol = Symbol::new(994u32);
    pub const i128: Symbol = Symbol::new(995u32);
    pub const i128_type: Symbol = Symbol::new(996u32);
    pub const ident: Symbol = Symbol::new(997u32);
    pub const if_let: Symbol = Symbol::new(998u32);
    pub const if_let_guard: Symbol = Symbol::new(999u32);
    pub const if_let_rescope: Symbol = Symbol::new(1000u32);
    pub const if_while_or_patterns: Symbol = Symbol::new(1001u32);
    pub const ignore: Symbol = Symbol::new(1002u32);
    pub const immediate_abort: Symbol = Symbol::new(1003u32);
    pub const impl_header_lifetime_elision: Symbol = Symbol::new(1004u32);
    pub const impl_lint_pass: Symbol = Symbol::new(1005u32);
    pub const impl_restriction: Symbol = Symbol::new(1006u32);
    pub const impl_trait_in_assoc_type: Symbol = Symbol::new(1007u32);
    pub const impl_trait_in_bindings: Symbol = Symbol::new(1008u32);
    pub const impl_trait_in_fn_trait_return: Symbol = Symbol::new(1009u32);
    pub const impl_trait_projections: Symbol = Symbol::new(1010u32);
    pub const implied_by: Symbol = Symbol::new(1011u32);
    pub const import: Symbol = Symbol::new(1012u32);
    pub const import_name_type: Symbol = Symbol::new(1013u32);
    pub const import_shadowing: Symbol = Symbol::new(1014u32);
    pub const import_trait_associated_functions: Symbol =
        Symbol::new(1015u32);
    pub const imported_main: Symbol = Symbol::new(1016u32);
    pub const in_band_lifetimes: Symbol = Symbol::new(1017u32);
    pub const include: Symbol = Symbol::new(1018u32);
    pub const include_bytes: Symbol = Symbol::new(1019u32);
    pub const include_str: Symbol = Symbol::new(1020u32);
    pub const inclusive_range_syntax: Symbol = Symbol::new(1021u32);
    pub const incomplete_features: Symbol = Symbol::new(1022u32);
    pub const index: Symbol = Symbol::new(1023u32);
    pub const index_mut: Symbol = Symbol::new(1024u32);
    pub const infer_outlives_requirements: Symbol = Symbol::new(1025u32);
    pub const infer_static_outlives_requirements: Symbol =
        Symbol::new(1026u32);
    pub const inherent_associated_types: Symbol = Symbol::new(1027u32);
    pub const initial: Symbol = Symbol::new(1028u32);
    pub const inlateout: Symbol = Symbol::new(1029u32);
    pub const inline: Symbol = Symbol::new(1030u32);
    pub const inline_const: Symbol = Symbol::new(1031u32);
    pub const inline_const_pat: Symbol = Symbol::new(1032u32);
    pub const inout: Symbol = Symbol::new(1033u32);
    pub const inputs: Symbol = Symbol::new(1034u32);
    pub const instruction_set: Symbol = Symbol::new(1035u32);
    pub const instrument_fn: Symbol = Symbol::new(1036u32);
    pub const integer_: Symbol = Symbol::new(1037u32);
    pub const integer_max: Symbol = Symbol::new(1038u32);
    pub const integer_min: Symbol = Symbol::new(1039u32);
    pub const integral: Symbol = Symbol::new(1040u32);
    pub const internal: Symbol = Symbol::new(1041u32);
    pub const internal_eq_trait_method_impls: Symbol = Symbol::new(1042u32);
    pub const internal_features: Symbol = Symbol::new(1043u32);
    pub const interrupt: Symbol = Symbol::new(1044u32);
    pub const into_async_iter_into_iter: Symbol = Symbol::new(1045u32);
    pub const into_future: Symbol = Symbol::new(1046u32);
    pub const into_iter: Symbol = Symbol::new(1047u32);
    pub const into_try_type: Symbol = Symbol::new(1048u32);
    pub const intra_doc_pointers: Symbol = Symbol::new(1049u32);
    pub const intrinsics: Symbol = Symbol::new(1050u32);
    pub const irrefutable_let_patterns: Symbol = Symbol::new(1051u32);
    pub const is: Symbol = Symbol::new(1052u32);
    pub const is_auto: Symbol = Symbol::new(1053u32);
    pub const is_splatted: Symbol = Symbol::new(1054u32);
    pub const is_val_statically_known: Symbol = Symbol::new(1055u32);
    pub const isa_attribute: Symbol = Symbol::new(1056u32);
    pub const isize: Symbol = Symbol::new(1057u32);
    pub const issue: Symbol = Symbol::new(1058u32);
    pub const issue_5723_bootstrap: Symbol = Symbol::new(1059u32);
    pub const issue_tracker_base_url: Symbol = Symbol::new(1060u32);
    pub const item: Symbol = Symbol::new(1061u32);
    pub const item_like_imports: Symbol = Symbol::new(1062u32);
    pub const iter: Symbol = Symbol::new(1063u32);
    pub const iter_mut: Symbol = Symbol::new(1064u32);
    pub const iterator: Symbol = Symbol::new(1065u32);
    pub const iterator_collect_fn: Symbol = Symbol::new(1066u32);
    pub const kcfi: Symbol = Symbol::new(1067u32);
    pub const kernel_address: Symbol = Symbol::new(1068u32);
    pub const kernel_hwaddress: Symbol = Symbol::new(1069u32);
    pub const keylocker_x86: Symbol = Symbol::new(1070u32);
    pub const keyword: Symbol = Symbol::new(1071u32);
    pub const kind: Symbol = Symbol::new(1072u32);
    pub const kreg: Symbol = Symbol::new(1073u32);
    pub const kreg0: Symbol = Symbol::new(1074u32);
    pub const label: Symbol = Symbol::new(1075u32);
    pub const label_break_value: Symbol = Symbol::new(1076u32);
    pub const lahfsahf_target_feature: Symbol = Symbol::new(1077u32);
    pub const lang: Symbol = Symbol::new(1078u32);
    pub const lang_items: Symbol = Symbol::new(1079u32);
    pub const large_assignments: Symbol = Symbol::new(1080u32);
    pub const largest_niche: Symbol = Symbol::new(1081u32);
    pub const last: Symbol = Symbol::new(1082u32);
    pub const lasx: Symbol = Symbol::new(1083u32);
    pub const late_bound_turbofishing: Symbol = Symbol::new(1084u32);
    pub const lateout: Symbol = Symbol::new(1085u32);
    pub const lazy_normalization_consts: Symbol = Symbol::new(1086u32);
    pub const lazy_type_alias: Symbol = Symbol::new(1087u32);
    pub const le: Symbol = Symbol::new(1088u32);
    pub const legacy_receiver: Symbol = Symbol::new(1089u32);
    pub const len: Symbol = Symbol::new(1090u32);
    pub const let_chains: Symbol = Symbol::new(1091u32);
    pub const let_else: Symbol = Symbol::new(1092u32);
    pub const lhs: Symbol = Symbol::new(1093u32);
    pub const lib: Symbol = Symbol::new(1094u32);
    pub const libc: Symbol = Symbol::new(1095u32);
    pub const lifetime: Symbol = Symbol::new(1096u32);
    pub const lifetime_capture_rules_2024: Symbol = Symbol::new(1097u32);
    pub const lifetimes: Symbol = Symbol::new(1098u32);
    pub const line: Symbol = Symbol::new(1099u32);
    pub const link: Symbol = Symbol::new(1100u32);
    pub const link_arg_attribute: Symbol = Symbol::new(1101u32);
    pub const link_args: Symbol = Symbol::new(1102u32);
    pub const link_cfg: Symbol = Symbol::new(1103u32);
    pub const link_dash_arg: Symbol = Symbol::new(1104u32);
    pub const link_llvm_intrinsics: Symbol = Symbol::new(1105u32);
    pub const link_name: Symbol = Symbol::new(1106u32);
    pub const link_ordinal: Symbol = Symbol::new(1107u32);
    pub const link_section: Symbol = Symbol::new(1108u32);
    pub const linkage: Symbol = Symbol::new(1109u32);
    pub const linker: Symbol = Symbol::new(1110u32);
    pub const linker_info: Symbol = Symbol::new(1111u32);
    pub const linker_messages: Symbol = Symbol::new(1112u32);
    pub const linkonce: Symbol = Symbol::new(1113u32);
    pub const linkonce_odr: Symbol = Symbol::new(1114u32);
    pub const lint_reasons: Symbol = Symbol::new(1115u32);
    pub const literal: Symbol = Symbol::new(1116u32);
    pub const little: Symbol = Symbol::new(1117u32);
    pub const big: Symbol = Symbol::new(1118u32);
    pub const load: Symbol = Symbol::new(1119u32);
    pub const loaded_from_disk: Symbol = Symbol::new(1120u32);
    pub const local: Symbol = Symbol::new(1121u32);
    pub const local_inner_macros: Symbol = Symbol::new(1122u32);
    pub const log: Symbol = Symbol::new(1123u32);
    pub const log2: Symbol = Symbol::new(1124u32);
    pub const log10: Symbol = Symbol::new(1125u32);
    pub const log_syntax: Symbol = Symbol::new(1126u32);
    pub const loongarch32: Symbol = Symbol::new(1127u32);
    pub const loongarch64: Symbol = Symbol::new(1128u32);
    pub const loongarch_target_feature: Symbol = Symbol::new(1129u32);
    pub const loop_break_value: Symbol = Symbol::new(1130u32);
    pub const loop_hints: Symbol = Symbol::new(1131u32);
    pub const loop_match: Symbol = Symbol::new(1132u32);
    pub const lr: Symbol = Symbol::new(1133u32);
    pub const lsx: Symbol = Symbol::new(1134u32);
    pub const lt: Symbol = Symbol::new(1135u32);
    pub const m68k: Symbol = Symbol::new(1136u32);
    pub const m68k_target_feature: Symbol = Symbol::new(1137u32);
    pub const mac16: Symbol = Symbol::new(1138u32);
    pub const macho: Symbol = Symbol::new(1139u32);
    pub const macro_at_most_once_rep: Symbol = Symbol::new(1140u32);
    pub const macro_attr: Symbol = Symbol::new(1141u32);
    pub const macro_attributes_in_derive_output: Symbol =
        Symbol::new(1142u32);
    pub const macro_derive: Symbol = Symbol::new(1143u32);
    pub const macro_escape: Symbol = Symbol::new(1144u32);
    pub const macro_export: Symbol = Symbol::new(1145u32);
    pub const macro_guard_matcher: Symbol = Symbol::new(1146u32);
    pub const macro_lifetime_matcher: Symbol = Symbol::new(1147u32);
    pub const macro_literal_matcher: Symbol = Symbol::new(1148u32);
    pub const macro_metavar_expr: Symbol = Symbol::new(1149u32);
    pub const macro_metavar_expr_concat: Symbol = Symbol::new(1150u32);
    pub const macro_reexport: Symbol = Symbol::new(1151u32);
    pub const macro_use: Symbol = Symbol::new(1152u32);
    pub const macro_vis_matcher: Symbol = Symbol::new(1153u32);
    pub const macroless_generic_const_args: Symbol = Symbol::new(1154u32);
    pub const macros_in_extern: Symbol = Symbol::new(1155u32);
    pub const main: Symbol = Symbol::new(1156u32);
    pub const managed_boxes: Symbol = Symbol::new(1157u32);
    pub const manually_drop: Symbol = Symbol::new(1158u32);
    pub const map: Symbol = Symbol::new(1159u32);
    pub const map_err: Symbol = Symbol::new(1160u32);
    pub const marker: Symbol = Symbol::new(1161u32);
    pub const marker_trait_attr: Symbol = Symbol::new(1162u32);
    pub const masked: Symbol = Symbol::new(1163u32);
    pub const match_beginning_vert: Symbol = Symbol::new(1164u32);
    pub const match_default_bindings: Symbol = Symbol::new(1165u32);
    pub const maximum_number_nsz_f16: Symbol = Symbol::new(1166u32);
    pub const maximum_number_nsz_f32: Symbol = Symbol::new(1167u32);
    pub const maximum_number_nsz_f64: Symbol = Symbol::new(1168u32);
    pub const maximum_number_nsz_f128: Symbol = Symbol::new(1169u32);
    pub const maximumf16: Symbol = Symbol::new(1170u32);
    pub const maximumf32: Symbol = Symbol::new(1171u32);
    pub const maximumf64: Symbol = Symbol::new(1172u32);
    pub const maximumf128: Symbol = Symbol::new(1173u32);
    pub const may_dangle: Symbol = Symbol::new(1174u32);
    pub const may_unwind: Symbol = Symbol::new(1175u32);
    pub const maybe_dangling: Symbol = Symbol::new(1176u32);
    pub const maybe_uninit: Symbol = Symbol::new(1177u32);
    pub const maybe_uninit_uninit: Symbol = Symbol::new(1178u32);
    pub const maybe_uninit_zeroed: Symbol = Symbol::new(1179u32);
    pub const mem: Symbol = Symbol::new(1180u32);
    pub const mem_align_const: Symbol = Symbol::new(1181u32);
    pub const mem_discriminant: Symbol = Symbol::new(1182u32);
    pub const mem_drop: Symbol = Symbol::new(1183u32);
    pub const mem_forget: Symbol = Symbol::new(1184u32);
    pub const mem_size_const: Symbol = Symbol::new(1185u32);
    pub const mem_swap: Symbol = Symbol::new(1186u32);
    pub const mem_uninitialized: Symbol = Symbol::new(1187u32);
    pub const mem_variant_count: Symbol = Symbol::new(1188u32);
    pub const mem_zeroed: Symbol = Symbol::new(1189u32);
    pub const member_constraints: Symbol = Symbol::new(1190u32);
    pub const memory: Symbol = Symbol::new(1191u32);
    pub const memtag: Symbol = Symbol::new(1192u32);
    pub const message: Symbol = Symbol::new(1193u32);
    pub const meta: Symbol = Symbol::new(1194u32);
    pub const meta_sized: Symbol = Symbol::new(1195u32);
    pub const metadata_type: Symbol = Symbol::new(1196u32);
    pub const mgca_type_const_syntax: Symbol = Symbol::new(1197u32);
    pub const min_adt_const_params: Symbol = Symbol::new(1198u32);
    pub const min_const_fn: Symbol = Symbol::new(1199u32);
    pub const min_const_generics: Symbol = Symbol::new(1200u32);
    pub const min_const_unsafe_fn: Symbol = Symbol::new(1201u32);
    pub const min_exhaustive_patterns: Symbol = Symbol::new(1202u32);
    pub const min_generic_const_args: Symbol = Symbol::new(1203u32);
    pub const min_specialization: Symbol = Symbol::new(1204u32);
    pub const min_type_alias_impl_trait: Symbol = Symbol::new(1205u32);
    pub const minimum_number_nsz_f16: Symbol = Symbol::new(1206u32);
    pub const minimum_number_nsz_f32: Symbol = Symbol::new(1207u32);
    pub const minimum_number_nsz_f64: Symbol = Symbol::new(1208u32);
    pub const minimum_number_nsz_f128: Symbol = Symbol::new(1209u32);
    pub const minimumf16: Symbol = Symbol::new(1210u32);
    pub const minimumf32: Symbol = Symbol::new(1211u32);
    pub const minimumf64: Symbol = Symbol::new(1212u32);
    pub const minimumf128: Symbol = Symbol::new(1213u32);
    pub const mips: Symbol = Symbol::new(1214u32);
    pub const mips32r6: Symbol = Symbol::new(1215u32);
    pub const mips64: Symbol = Symbol::new(1216u32);
    pub const mips64r6: Symbol = Symbol::new(1217u32);
    pub const mips_target_feature: Symbol = Symbol::new(1218u32);
    pub const mir_assume: Symbol = Symbol::new(1219u32);
    pub const mir_basic_block: Symbol = Symbol::new(1220u32);
    pub const mir_call: Symbol = Symbol::new(1221u32);
    pub const mir_cast_ptr_to_ptr: Symbol = Symbol::new(1222u32);
    pub const mir_cast_transmute: Symbol = Symbol::new(1223u32);
    pub const mir_cast_unsize: Symbol = Symbol::new(1224u32);
    pub const mir_checked: Symbol = Symbol::new(1225u32);
    pub const mir_debuginfo: Symbol = Symbol::new(1226u32);
    pub const mir_discriminant: Symbol = Symbol::new(1227u32);
    pub const mir_drop: Symbol = Symbol::new(1228u32);
    pub const mir_field: Symbol = Symbol::new(1229u32);
    pub const mir_goto: Symbol = Symbol::new(1230u32);
    pub const mir_make_place: Symbol = Symbol::new(1231u32);
    pub const mir_move: Symbol = Symbol::new(1232u32);
    pub const mir_offset: Symbol = Symbol::new(1233u32);
    pub const mir_ptr_metadata: Symbol = Symbol::new(1234u32);
    pub const mir_return: Symbol = Symbol::new(1235u32);
    pub const mir_return_to: Symbol = Symbol::new(1236u32);
    pub const mir_set_discriminant: Symbol = Symbol::new(1237u32);
    pub const mir_static: Symbol = Symbol::new(1238u32);
    pub const mir_static_mut: Symbol = Symbol::new(1239u32);
    pub const mir_storage_dead: Symbol = Symbol::new(1240u32);
    pub const mir_storage_live: Symbol = Symbol::new(1241u32);
    pub const mir_tail_call: Symbol = Symbol::new(1242u32);
    pub const mir_unreachable: Symbol = Symbol::new(1243u32);
    pub const mir_unwind_cleanup: Symbol = Symbol::new(1244u32);
    pub const mir_unwind_continue: Symbol = Symbol::new(1245u32);
    pub const mir_unwind_resume: Symbol = Symbol::new(1246u32);
    pub const mir_unwind_terminate: Symbol = Symbol::new(1247u32);
    pub const mir_unwind_terminate_reason: Symbol = Symbol::new(1248u32);
    pub const mir_unwind_unreachable: Symbol = Symbol::new(1249u32);
    pub const mir_variant: Symbol = Symbol::new(1250u32);
    pub const miri: Symbol = Symbol::new(1251u32);
    pub const misc: Symbol = Symbol::new(1252u32);
    pub const miscsr: Symbol = Symbol::new(1253u32);
    pub const mmx_reg: Symbol = Symbol::new(1254u32);
    pub const modifiers: Symbol = Symbol::new(1255u32);
    pub const module: Symbol = Symbol::new(1256u32);
    pub const module_path: Symbol = Symbol::new(1257u32);
    pub const more_maybe_bounds: Symbol = Symbol::new(1258u32);
    pub const more_qualified_paths: Symbol = Symbol::new(1259u32);
    pub const more_struct_aliases: Symbol = Symbol::new(1260u32);
    pub const movbe_target_feature: Symbol = Symbol::new(1261u32);
    pub const move_expr: Symbol = Symbol::new(1262u32);
    pub const move_ref_pattern: Symbol = Symbol::new(1263u32);
    pub const move_size_limit: Symbol = Symbol::new(1264u32);
    pub const movrs_target_feature: Symbol = Symbol::new(1265u32);
    pub const msa: Symbol = Symbol::new(1266u32);
    pub const msp430: Symbol = Symbol::new(1267u32);
    pub const mul: Symbol = Symbol::new(1268u32);
    pub const mul_assign: Symbol = Symbol::new(1269u32);
    pub const mul_with_overflow: Symbol = Symbol::new(1270u32);
    pub const multiple_supertrait_upcastable: Symbol = Symbol::new(1271u32);
    pub const must_not_suspend: Symbol = Symbol::new(1272u32);
    pub const must_use: Symbol = Symbol::new(1273u32);
    pub const mut_preserve_binding_mode_2024: Symbol = Symbol::new(1274u32);
    pub const mut_ref: Symbol = Symbol::new(1275u32);
    pub const mut_restriction: Symbol = Symbol::new(1276u32);
    pub const mutable: Symbol = Symbol::new(1277u32);
    pub const naked: Symbol = Symbol::new(1278u32);
    pub const naked_asm: Symbol = Symbol::new(1279u32);
    pub const naked_functions: Symbol = Symbol::new(1280u32);
    pub const naked_functions_rustic_abi: Symbol = Symbol::new(1281u32);
    pub const naked_functions_target_feature: Symbol = Symbol::new(1282u32);
    pub const name: Symbol = Symbol::new(1283u32);
    pub const named_fn_trait_parameters: Symbol = Symbol::new(1284u32);
    pub const names: Symbol = Symbol::new(1285u32);
    pub const native_link_modifiers: Symbol = Symbol::new(1286u32);
    pub const native_link_modifiers_as_needed: Symbol = Symbol::new(1287u32);
    pub const native_link_modifiers_bundle: Symbol = Symbol::new(1288u32);
    pub const native_link_modifiers_verbatim: Symbol = Symbol::new(1289u32);
    pub const native_link_modifiers_whole_archive: Symbol =
        Symbol::new(1290u32);
    pub const natvis_file: Symbol = Symbol::new(1291u32);
    pub const ne: Symbol = Symbol::new(1292u32);
    pub const needs_allocator: Symbol = Symbol::new(1293u32);
    pub const needs_drop: Symbol = Symbol::new(1294u32);
    pub const needs_panic_runtime: Symbol = Symbol::new(1295u32);
    pub const neg: Symbol = Symbol::new(1296u32);
    pub const negate_unsigned: Symbol = Symbol::new(1297u32);
    pub const negative_bounds: Symbol = Symbol::new(1298u32);
    pub const negative_impls: Symbol = Symbol::new(1299u32);
    pub const neon: Symbol = Symbol::new(1300u32);
    pub const nested: Symbol = Symbol::new(1301u32);
    pub const never: Symbol = Symbol::new(1302u32);
    pub const never_patterns: Symbol = Symbol::new(1303u32);
    pub const never_type: Symbol = Symbol::new(1304u32);
    pub const never_type_fallback: Symbol = Symbol::new(1305u32);
    pub const new: Symbol = Symbol::new(1306u32);
    pub const new_binary: Symbol = Symbol::new(1307u32);
    pub const new_debug: Symbol = Symbol::new(1308u32);
    pub const new_debug_noop: Symbol = Symbol::new(1309u32);
    pub const new_display: Symbol = Symbol::new(1310u32);
    pub const new_lower_exp: Symbol = Symbol::new(1311u32);
    pub const new_lower_hex: Symbol = Symbol::new(1312u32);
    pub const new_octal: Symbol = Symbol::new(1313u32);
    pub const new_pointer: Symbol = Symbol::new(1314u32);
    pub const new_range: Symbol = Symbol::new(1315u32);
    pub const new_unchecked: Symbol = Symbol::new(1316u32);
    pub const new_upper_exp: Symbol = Symbol::new(1317u32);
    pub const new_upper_hex: Symbol = Symbol::new(1318u32);
    pub const next: Symbol = Symbol::new(1319u32);
    pub const niko: Symbol = Symbol::new(1320u32);
    pub const nll: Symbol = Symbol::new(1321u32);
    pub const no: Symbol = Symbol::new(1322u32);
    pub const no_builtins: Symbol = Symbol::new(1323u32);
    pub const no_core: Symbol = Symbol::new(1324u32);
    pub const no_coverage: Symbol = Symbol::new(1325u32);
    pub const no_crate_inject: Symbol = Symbol::new(1326u32);
    pub const no_debug: Symbol = Symbol::new(1327u32);
    pub const no_default_passes: Symbol = Symbol::new(1328u32);
    pub const no_implicit_prelude: Symbol = Symbol::new(1329u32);
    pub const no_inline: Symbol = Symbol::new(1330u32);
    pub const no_link: Symbol = Symbol::new(1331u32);
    pub const no_main: Symbol = Symbol::new(1332u32);
    pub const no_mangle: Symbol = Symbol::new(1333u32);
    pub const no_sanitize: Symbol = Symbol::new(1334u32);
    pub const no_stack_check: Symbol = Symbol::new(1335u32);
    pub const no_std: Symbol = Symbol::new(1336u32);
    pub const nomem: Symbol = Symbol::new(1337u32);
    pub const non_ascii_idents: Symbol = Symbol::new(1338u32);
    pub const non_exhaustive: Symbol = Symbol::new(1339u32);
    pub const non_exhaustive_omitted_patterns_lint: Symbol =
        Symbol::new(1340u32);
    pub const non_lifetime_binders: Symbol = Symbol::new(1341u32);
    pub const non_modrs_mods: Symbol = Symbol::new(1342u32);
    pub const non_null: Symbol = Symbol::new(1343u32);
    pub const nonblocking: Symbol = Symbol::new(1344u32);
    pub const none: Symbol = Symbol::new(1345u32);
    pub const nontemporal_store: Symbol = Symbol::new(1346u32);
    pub const noop_method_borrow: Symbol = Symbol::new(1347u32);
    pub const noop_method_clone: Symbol = Symbol::new(1348u32);
    pub const noop_method_deref: Symbol = Symbol::new(1349u32);
    pub const noprefix: Symbol = Symbol::new(1350u32);
    pub const noreturn: Symbol = Symbol::new(1351u32);
    pub const nostack: Symbol = Symbol::new(1352u32);
    pub const not: Symbol = Symbol::new(1353u32);
    pub const notable_trait: Symbol = Symbol::new(1354u32);
    pub const note: Symbol = Symbol::new(1355u32);
    pub const null: Symbol = Symbol::new(1356u32);
    pub const nvptx64: Symbol = Symbol::new(1357u32);
    pub const nvptx_target_feature: Symbol = Symbol::new(1358u32);
    pub const object_safe_for_dispatch: Symbol = Symbol::new(1359u32);
    pub const of: Symbol = Symbol::new(1360u32);
    pub const off: Symbol = Symbol::new(1361u32);
    pub const offload: Symbol = Symbol::new(1362u32);
    pub const offload_get_num_devices: Symbol = Symbol::new(1363u32);
    pub const offload_kernel: Symbol = Symbol::new(1364u32);
    pub const offset: Symbol = Symbol::new(1365u32);
    pub const offset_of: Symbol = Symbol::new(1366u32);
    pub const offset_of_enum: Symbol = Symbol::new(1367u32);
    pub const offset_of_nested: Symbol = Symbol::new(1368u32);
    pub const offset_of_slice: Symbol = Symbol::new(1369u32);
    pub const ok_or_else: Symbol = Symbol::new(1370u32);
    pub const old_name: Symbol = Symbol::new(1371u32);
    pub const omit_gdb_pretty_printer_section: Symbol = Symbol::new(1372u32);
    pub const on: Symbol = Symbol::new(1373u32);
    pub const on_const: Symbol = Symbol::new(1374u32);
    pub const on_move: Symbol = Symbol::new(1375u32);
    pub const on_type_error: Symbol = Symbol::new(1376u32);
    pub const on_unimplemented: Symbol = Symbol::new(1377u32);
    pub const on_unknown: Symbol = Symbol::new(1378u32);
    pub const on_unmatched_args: Symbol = Symbol::new(1379u32);
    pub const opaque: Symbol = Symbol::new(1380u32);
    pub const opaque_module_name_placeholder: Symbol = Symbol::new(1381u32);
    pub const ops: Symbol = Symbol::new(1382u32);
    pub const opt_out_copy: Symbol = Symbol::new(1383u32);
    pub const optimize: Symbol = Symbol::new(1384u32);
    pub const optimize_attribute: Symbol = Symbol::new(1385u32);
    pub const optimized: Symbol = Symbol::new(1386u32);
    pub const optin_builtin_traits: Symbol = Symbol::new(1387u32);
    pub const option: Symbol = Symbol::new(1388u32);
    pub const option_env: Symbol = Symbol::new(1389u32);
    pub const options: Symbol = Symbol::new(1390u32);
    pub const or: Symbol = Symbol::new(1391u32);
    pub const or_patterns: Symbol = Symbol::new(1392u32);
    pub const ord_cmp_method: Symbol = Symbol::new(1393u32);
    pub const other: Symbol = Symbol::new(1394u32);
    pub const out: Symbol = Symbol::new(1395u32);
    pub const output: Symbol = Symbol::new(1396u32);
    pub const overflow_checks: Symbol = Symbol::new(1397u32);
    pub const overlapping_marker_traits: Symbol = Symbol::new(1398u32);
    pub const owned_box: Symbol = Symbol::new(1399u32);
    pub const packed: Symbol = Symbol::new(1400u32);
    pub const packed_bundled_libs: Symbol = Symbol::new(1401u32);
    pub const panic: Symbol = Symbol::new(1402u32);
    pub const panic_2015: Symbol = Symbol::new(1403u32);
    pub const panic_2021: Symbol = Symbol::new(1404u32);
    pub const panic_abort: Symbol = Symbol::new(1405u32);
    pub const panic_bounds_check: Symbol = Symbol::new(1406u32);
    pub const panic_cannot_unwind: Symbol = Symbol::new(1407u32);
    pub const panic_const_add_overflow: Symbol = Symbol::new(1408u32);
    pub const panic_const_async_fn_resumed: Symbol = Symbol::new(1409u32);
    pub const panic_const_async_fn_resumed_drop: Symbol =
        Symbol::new(1410u32);
    pub const panic_const_async_fn_resumed_panic: Symbol =
        Symbol::new(1411u32);
    pub const panic_const_async_gen_fn_resumed: Symbol = Symbol::new(1412u32);
    pub const panic_const_async_gen_fn_resumed_drop: Symbol =
        Symbol::new(1413u32);
    pub const panic_const_async_gen_fn_resumed_panic: Symbol =
        Symbol::new(1414u32);
    pub const panic_const_coroutine_resumed: Symbol = Symbol::new(1415u32);
    pub const panic_const_coroutine_resumed_drop: Symbol =
        Symbol::new(1416u32);
    pub const panic_const_coroutine_resumed_panic: Symbol =
        Symbol::new(1417u32);
    pub const panic_const_div_by_zero: Symbol = Symbol::new(1418u32);
    pub const panic_const_div_overflow: Symbol = Symbol::new(1419u32);
    pub const panic_const_gen_fn_none: Symbol = Symbol::new(1420u32);
    pub const panic_const_gen_fn_none_drop: Symbol = Symbol::new(1421u32);
    pub const panic_const_gen_fn_none_panic: Symbol = Symbol::new(1422u32);
    pub const panic_const_mul_overflow: Symbol = Symbol::new(1423u32);
    pub const panic_const_neg_overflow: Symbol = Symbol::new(1424u32);
    pub const panic_const_rem_by_zero: Symbol = Symbol::new(1425u32);
    pub const panic_const_rem_overflow: Symbol = Symbol::new(1426u32);
    pub const panic_const_shl_overflow: Symbol = Symbol::new(1427u32);
    pub const panic_const_shr_overflow: Symbol = Symbol::new(1428u32);
    pub const panic_const_sub_overflow: Symbol = Symbol::new(1429u32);
    pub const panic_display: Symbol = Symbol::new(1430u32);
    pub const panic_fmt: Symbol = Symbol::new(1431u32);
    pub const panic_handler: Symbol = Symbol::new(1432u32);
    pub const panic_impl: Symbol = Symbol::new(1433u32);
    pub const panic_implementation: Symbol = Symbol::new(1434u32);
    pub const panic_in_cleanup: Symbol = Symbol::new(1435u32);
    pub const panic_info: Symbol = Symbol::new(1436u32);
    pub const panic_invalid_enum_construction: Symbol = Symbol::new(1437u32);
    pub const panic_location: Symbol = Symbol::new(1438u32);
    pub const panic_misaligned_pointer_dereference: Symbol =
        Symbol::new(1439u32);
    pub const panic_nounwind: Symbol = Symbol::new(1440u32);
    pub const panic_null_pointer_dereference: Symbol = Symbol::new(1441u32);
    pub const panic_null_reference_constructed: Symbol = Symbol::new(1442u32);
    pub const panic_runtime: Symbol = Symbol::new(1443u32);
    pub const panic_str_2015: Symbol = Symbol::new(1444u32);
    pub const panic_unwind: Symbol = Symbol::new(1445u32);
    pub const panicking: Symbol = Symbol::new(1446u32);
    pub const param_attrs: Symbol = Symbol::new(1447u32);
    pub const parent_label: Symbol = Symbol::new(1448u32);
    pub const partial_cmp: Symbol = Symbol::new(1449u32);
    pub const partial_ord: Symbol = Symbol::new(1450u32);
    pub const passes: Symbol = Symbol::new(1451u32);
    pub const pat: Symbol = Symbol::new(1452u32);
    pub const pat_param: Symbol = Symbol::new(1453u32);
    pub const patchable_function_entry: Symbol = Symbol::new(1454u32);
    pub const path: Symbol = Symbol::new(1455u32);
    pub const pattern_complexity_limit: Symbol = Symbol::new(1456u32);
    pub const pattern_parentheses: Symbol = Symbol::new(1457u32);
    pub const pattern_type: Symbol = Symbol::new(1458u32);
    pub const pattern_type_range_trait: Symbol = Symbol::new(1459u32);
    pub const pattern_types: Symbol = Symbol::new(1460u32);
    pub const phantom_data: Symbol = Symbol::new(1461u32);
    pub const phase: Symbol = Symbol::new(1462u32);
    pub const pic: Symbol = Symbol::new(1463u32);
    pub const pie: Symbol = Symbol::new(1464u32);
    pub const pin_drop: Symbol = Symbol::new(1465u32);
    pub const pin_ergonomics: Symbol = Symbol::new(1466u32);
    pub const pin_v2: Symbol = Symbol::new(1467u32);
    pub const platform_intrinsics: Symbol = Symbol::new(1468u32);
    pub const plugin: Symbol = Symbol::new(1469u32);
    pub const plugin_registrar: Symbol = Symbol::new(1470u32);
    pub const plugins: Symbol = Symbol::new(1471u32);
    pub const pointee: Symbol = Symbol::new(1472u32);
    pub const pointee_sized: Symbol = Symbol::new(1473u32);
    pub const pointee_trait: Symbol = Symbol::new(1474u32);
    pub const pointer: Symbol = Symbol::new(1475u32);
    pub const poll: Symbol = Symbol::new(1476u32);
    pub const post_cleanup: Symbol = Symbol::new(1477u32);
    pub const post_dash_lto: Symbol = Symbol::new(1478u32);
    pub const postfix_match: Symbol = Symbol::new(1479u32);
    pub const powerpc: Symbol = Symbol::new(1480u32);
    pub const powerpc64: Symbol = Symbol::new(1481u32);
    pub const powerpc_target_feature: Symbol = Symbol::new(1482u32);
    pub const powf16: Symbol = Symbol::new(1483u32);
    pub const powf32: Symbol = Symbol::new(1484u32);
    pub const powf64: Symbol = Symbol::new(1485u32);
    pub const powf128: Symbol = Symbol::new(1486u32);
    pub const powif16: Symbol = Symbol::new(1487u32);
    pub const powif32: Symbol = Symbol::new(1488u32);
    pub const powif64: Symbol = Symbol::new(1489u32);
    pub const powif128: Symbol = Symbol::new(1490u32);
    pub const pre_dash_lto: Symbol = Symbol::new(1491u32);
    pub const precise_capturing: Symbol = Symbol::new(1492u32);
    pub const precise_capturing_in_traits: Symbol = Symbol::new(1493u32);
    pub const precise_pointer_size_matching: Symbol = Symbol::new(1494u32);
    pub const predicates: Symbol = Symbol::new(1495u32);
    pub const pref_align_of: Symbol = Symbol::new(1496u32);
    pub const prefetch_read_data: Symbol = Symbol::new(1497u32);
    pub const prefetch_read_instruction: Symbol = Symbol::new(1498u32);
    pub const prefetch_write_data: Symbol = Symbol::new(1499u32);
    pub const prefetch_write_instruction: Symbol = Symbol::new(1500u32);
    pub const prefix_nops: Symbol = Symbol::new(1501u32);
    pub const preg: Symbol = Symbol::new(1502u32);
    pub const prelude: Symbol = Symbol::new(1503u32);
    pub const prelude_import: Symbol = Symbol::new(1504u32);
    pub const preserves_flags: Symbol = Symbol::new(1505u32);
    pub const prfchw_target_feature: Symbol = Symbol::new(1506u32);
    pub const prid: Symbol = Symbol::new(1507u32);
    pub const primitive: Symbol = Symbol::new(1508u32);
    pub const proc_dash_macro: Symbol = Symbol::new(1509u32);
    pub const proc_macro: Symbol = Symbol::new(1510u32);
    pub const proc_macro_attribute: Symbol = Symbol::new(1511u32);
    pub const proc_macro_derive: Symbol = Symbol::new(1512u32);
    pub const proc_macro_expr: Symbol = Symbol::new(1513u32);
    pub const proc_macro_gen: Symbol = Symbol::new(1514u32);
    pub const proc_macro_hygiene: Symbol = Symbol::new(1515u32);
    pub const proc_macro_internals: Symbol = Symbol::new(1516u32);
    pub const proc_macro_mod: Symbol = Symbol::new(1517u32);
    pub const proc_macro_non_items: Symbol = Symbol::new(1518u32);
    pub const proc_macro_path_invoc: Symbol = Symbol::new(1519u32);
    pub const profiler_runtime: Symbol = Symbol::new(1520u32);
    pub const ptr: Symbol = Symbol::new(1521u32);
    pub const ptr_cast: Symbol = Symbol::new(1522u32);
    pub const ptr_cast_const: Symbol = Symbol::new(1523u32);
    pub const ptr_cast_mut: Symbol = Symbol::new(1524u32);
    pub const ptr_const_is_null: Symbol = Symbol::new(1525u32);
    pub const ptr_copy: Symbol = Symbol::new(1526u32);
    pub const ptr_copy_nonoverlapping: Symbol = Symbol::new(1527u32);
    pub const ptr_drop_in_place: Symbol = Symbol::new(1528u32);
    pub const ptr_drop_in_place_self: Symbol = Symbol::new(1529u32);
    pub const ptr_from_ref: Symbol = Symbol::new(1530u32);
    pub const ptr_guaranteed_cmp: Symbol = Symbol::new(1531u32);
    pub const ptr_is_null: Symbol = Symbol::new(1532u32);
    pub const ptr_mask: Symbol = Symbol::new(1533u32);
    pub const ptr_metadata: Symbol = Symbol::new(1534u32);
    pub const ptr_null: Symbol = Symbol::new(1535u32);
    pub const ptr_null_mut: Symbol = Symbol::new(1536u32);
    pub const ptr_offset_from: Symbol = Symbol::new(1537u32);
    pub const ptr_offset_from_unsigned: Symbol = Symbol::new(1538u32);
    pub const ptr_read: Symbol = Symbol::new(1539u32);
    pub const ptr_read_unaligned: Symbol = Symbol::new(1540u32);
    pub const ptr_replace: Symbol = Symbol::new(1541u32);
    pub const ptr_swap: Symbol = Symbol::new(1542u32);
    pub const ptr_swap_nonoverlapping: Symbol = Symbol::new(1543u32);
    pub const ptr_write: Symbol = Symbol::new(1544u32);
    pub const ptr_write_bytes: Symbol = Symbol::new(1545u32);
    pub const ptr_write_unaligned: Symbol = Symbol::new(1546u32);
    pub const ptr_write_volatile: Symbol = Symbol::new(1547u32);
    pub const pub_macro_rules: Symbol = Symbol::new(1548u32);
    pub const pub_restricted: Symbol = Symbol::new(1549u32);
    pub const public: Symbol = Symbol::new(1550u32);
    pub const pure: Symbol = Symbol::new(1551u32);
    pub const pushpop_unsafe: Symbol = Symbol::new(1552u32);
    pub const qreg: Symbol = Symbol::new(1553u32);
    pub const qreg_low4: Symbol = Symbol::new(1554u32);
    pub const qreg_low8: Symbol = Symbol::new(1555u32);
    pub const quad_precision_float: Symbol = Symbol::new(1556u32);
    pub const question_mark: Symbol = Symbol::new(1557u32);
    pub const quote: Symbol = Symbol::new(1558u32);
    pub const range_inclusive_new: Symbol = Symbol::new(1559u32);
    pub const raw_dash_dylib: Symbol = Symbol::new(1560u32);
    pub const raw_dylib: Symbol = Symbol::new(1561u32);
    pub const raw_dylib_elf: Symbol = Symbol::new(1562u32);
    pub const raw_eq: Symbol = Symbol::new(1563u32);
    pub const raw_identifiers: Symbol = Symbol::new(1564u32);
    pub const raw_ref_op: Symbol = Symbol::new(1565u32);
    pub const re_rebalance_coherence: Symbol = Symbol::new(1566u32);
    pub const read_via_copy: Symbol = Symbol::new(1567u32);
    pub const readonly: Symbol = Symbol::new(1568u32);
    pub const realloc: Symbol = Symbol::new(1569u32);
    pub const realtime: Symbol = Symbol::new(1570u32);
    pub const reason: Symbol = Symbol::new(1571u32);
    pub const reborrow: Symbol = Symbol::new(1572u32);
    pub const receiver: Symbol = Symbol::new(1573u32);
    pub const receiver_target: Symbol = Symbol::new(1574u32);
    pub const recursion_limit: Symbol = Symbol::new(1575u32);
    pub const reexport_test_harness_main: Symbol = Symbol::new(1576u32);
    pub const ref_pat_eat_one_layer_2024: Symbol = Symbol::new(1577u32);
    pub const ref_pat_eat_one_layer_2024_structural: Symbol =
        Symbol::new(1578u32);
    pub const ref_pat_everywhere: Symbol = Symbol::new(1579u32);
    pub const ref_unwind_safe_trait: Symbol = Symbol::new(1580u32);
    pub const reference: Symbol = Symbol::new(1581u32);
    pub const reflect: Symbol = Symbol::new(1582u32);
    pub const reg: Symbol = Symbol::new(1583u32);
    pub const reg16: Symbol = Symbol::new(1584u32);
    pub const reg32: Symbol = Symbol::new(1585u32);
    pub const reg64: Symbol = Symbol::new(1586u32);
    pub const reg_abcd: Symbol = Symbol::new(1587u32);
    pub const reg_addr: Symbol = Symbol::new(1588u32);
    pub const reg_byte: Symbol = Symbol::new(1589u32);
    pub const reg_data: Symbol = Symbol::new(1590u32);
    pub const reg_iw: Symbol = Symbol::new(1591u32);
    pub const reg_nonzero: Symbol = Symbol::new(1592u32);
    pub const reg_pair: Symbol = Symbol::new(1593u32);
    pub const reg_ptr: Symbol = Symbol::new(1594u32);
    pub const reg_upper: Symbol = Symbol::new(1595u32);
    pub const register_attr: Symbol = Symbol::new(1596u32);
    pub const register_attribute_tool: Symbol = Symbol::new(1597u32);
    pub const register_lint_tool: Symbol = Symbol::new(1598u32);
    pub const register_tool: Symbol = Symbol::new(1599u32);
    pub const relaxed_adts: Symbol = Symbol::new(1600u32);
    pub const relaxed_struct_unsize: Symbol = Symbol::new(1601u32);
    pub const relocation_model: Symbol = Symbol::new(1602u32);
    pub const rem: Symbol = Symbol::new(1603u32);
    pub const rem_assign: Symbol = Symbol::new(1604u32);
    pub const repr: Symbol = Symbol::new(1605u32);
    pub const repr128: Symbol = Symbol::new(1606u32);
    pub const repr_align: Symbol = Symbol::new(1607u32);
    pub const repr_align_enum: Symbol = Symbol::new(1608u32);
    pub const repr_packed: Symbol = Symbol::new(1609u32);
    pub const repr_simd: Symbol = Symbol::new(1610u32);
    pub const repr_transparent: Symbol = Symbol::new(1611u32);
    pub const require: Symbol = Symbol::new(1612u32);
    pub const reserve_x18: Symbol = Symbol::new(1613u32);
    pub const residual: Symbol = Symbol::new(1614u32);
    pub const result: Symbol = Symbol::new(1615u32);
    pub const result_ffi_guarantees: Symbol = Symbol::new(1616u32);
    pub const return_address: Symbol = Symbol::new(1617u32);
    pub const return_position_impl_trait_in_trait: Symbol =
        Symbol::new(1618u32);
    pub const return_type_notation: Symbol = Symbol::new(1619u32);
    pub const right_arrow: Symbol = Symbol::new(1620u32);
    pub const riscv32: Symbol = Symbol::new(1621u32);
    pub const riscv64: Symbol = Symbol::new(1622u32);
    pub const riscv_target_feature: Symbol = Symbol::new(1623u32);
    pub const rlib: Symbol = Symbol::new(1624u32);
    pub const ropi: Symbol = Symbol::new(1625u32);
    pub const ropi_rwpi: Symbol = Symbol::new(1626u32);
    pub const rotate_left: Symbol = Symbol::new(1627u32);
    pub const rotate_right: Symbol = Symbol::new(1628u32);
    pub const round_ties_even_f16: Symbol = Symbol::new(1629u32);
    pub const round_ties_even_f32: Symbol = Symbol::new(1630u32);
    pub const round_ties_even_f64: Symbol = Symbol::new(1631u32);
    pub const round_ties_even_f128: Symbol = Symbol::new(1632u32);
    pub const roundf16: Symbol = Symbol::new(1633u32);
    pub const roundf32: Symbol = Symbol::new(1634u32);
    pub const roundf64: Symbol = Symbol::new(1635u32);
    pub const roundf128: Symbol = Symbol::new(1636u32);
    pub const rtm_target_feature: Symbol = Symbol::new(1637u32);
    pub const runtime: Symbol = Symbol::new(1638u32);
    pub const rust: Symbol = Symbol::new(1639u32);
    pub const rust_2015: Symbol = Symbol::new(1640u32);
    pub const rust_2018: Symbol = Symbol::new(1641u32);
    pub const rust_2018_preview: Symbol = Symbol::new(1642u32);
    pub const rust_2021: Symbol = Symbol::new(1643u32);
    pub const rust_2024: Symbol = Symbol::new(1644u32);
    pub const rust_analyzer: Symbol = Symbol::new(1645u32);
    pub const rust_begin_unwind: Symbol = Symbol::new(1646u32);
    pub const rust_cold_cc: Symbol = Symbol::new(1647u32);
    pub const rust_dash_call: Symbol = Symbol::new(1648u32);
    pub const rust_eh_personality: Symbol = Symbol::new(1649u32);
    pub const rust_future: Symbol = Symbol::new(1650u32);
    pub const rust_logo: Symbol = Symbol::new(1651u32);
    pub const rust_out: Symbol = Symbol::new(1652u32);
    pub const rust_preserve_none_cc: Symbol = Symbol::new(1653u32);
    pub const rust_tail_cc: Symbol = Symbol::new(1654u32);
    pub const rustc: Symbol = Symbol::new(1655u32);
    pub const rustc_abi: Symbol = Symbol::new(1656u32);
    pub const rustc_align: Symbol = Symbol::new(1657u32);
    pub const rustc_align_static: Symbol = Symbol::new(1658u32);
    pub const rustc_allocator: Symbol = Symbol::new(1659u32);
    pub const rustc_allocator_zeroed: Symbol = Symbol::new(1660u32);
    pub const rustc_allocator_zeroed_variant: Symbol = Symbol::new(1661u32);
    pub const rustc_allow_const_fn_unstable: Symbol = Symbol::new(1662u32);
    pub const rustc_allow_incoherent_impl: Symbol = Symbol::new(1663u32);
    pub const rustc_allow_lifetime_dependent_specialization: Symbol =
        Symbol::new(1664u32);
    pub const rustc_allowed_through_unstable_modules: Symbol =
        Symbol::new(1665u32);
    pub const rustc_as_ptr: Symbol = Symbol::new(1666u32);
    pub const rustc_attrs: Symbol = Symbol::new(1667u32);
    pub const rustc_autodiff: Symbol = Symbol::new(1668u32);
    pub const rustc_builtin_macro: Symbol = Symbol::new(1669u32);
    pub const rustc_canonical_symbol: Symbol = Symbol::new(1670u32);
    pub const rustc_capture_analysis: Symbol = Symbol::new(1671u32);
    pub const rustc_clean: Symbol = Symbol::new(1672u32);
    pub const rustc_coherence_is_core: Symbol = Symbol::new(1673u32);
    pub const rustc_coinductive: Symbol = Symbol::new(1674u32);
    pub const rustc_comptime: Symbol = Symbol::new(1675u32);
    pub const rustc_confusables: Symbol = Symbol::new(1676u32);
    pub const rustc_const_stable: Symbol = Symbol::new(1677u32);
    pub const rustc_const_stable_indirect: Symbol = Symbol::new(1678u32);
    pub const rustc_const_unstable: Symbol = Symbol::new(1679u32);
    pub const rustc_conversion_suggestion: Symbol = Symbol::new(1680u32);
    pub const rustc_deallocator: Symbol = Symbol::new(1681u32);
    pub const rustc_default_body_unstable: Symbol = Symbol::new(1682u32);
    pub const rustc_delayed_bug_from_inside_query: Symbol =
        Symbol::new(1683u32);
    pub const rustc_deny_explicit_impl: Symbol = Symbol::new(1684u32);
    pub const rustc_deprecated_safe_2024: Symbol = Symbol::new(1685u32);
    pub const rustc_diagnostic_item: Symbol = Symbol::new(1686u32);
    pub const rustc_diagnostic_macros: Symbol = Symbol::new(1687u32);
    pub const rustc_diagnostic_opaque: Symbol = Symbol::new(1688u32);
    pub const rustc_do_not_const_check: Symbol = Symbol::new(1689u32);
    pub const rustc_doc_primitive: Symbol = Symbol::new(1690u32);
    pub const rustc_driver: Symbol = Symbol::new(1691u32);
    pub const rustc_dummy: Symbol = Symbol::new(1692u32);
    pub const rustc_dump_clauses: Symbol = Symbol::new(1693u32);
    pub const rustc_dump_def_parents: Symbol = Symbol::new(1694u32);
    pub const rustc_dump_def_path: Symbol = Symbol::new(1695u32);
    pub const rustc_dump_generics: Symbol = Symbol::new(1696u32);
    pub const rustc_dump_hidden_type_of_opaques: Symbol =
        Symbol::new(1697u32);
    pub const rustc_dump_inferred_outlives: Symbol = Symbol::new(1698u32);
    pub const rustc_dump_item_bounds: Symbol = Symbol::new(1699u32);
    pub const rustc_dump_layout: Symbol = Symbol::new(1700u32);
    pub const rustc_dump_object_lifetime_defaults: Symbol =
        Symbol::new(1701u32);
    pub const rustc_dump_symbol_name: Symbol = Symbol::new(1702u32);
    pub const rustc_dump_user_args: Symbol = Symbol::new(1703u32);
    pub const rustc_dump_variances: Symbol = Symbol::new(1704u32);
    pub const rustc_dump_variances_of_opaques: Symbol = Symbol::new(1705u32);
    pub const rustc_dump_vtable: Symbol = Symbol::new(1706u32);
    pub const rustc_dyn_incompatible_trait: Symbol = Symbol::new(1707u32);
    pub const rustc_effective_visibility: Symbol = Symbol::new(1708u32);
    pub const rustc_eii_foreign_item: Symbol = Symbol::new(1709u32);
    pub const rustc_evaluate_where_clauses: Symbol = Symbol::new(1710u32);
    pub const rustc_expected_cgu_reuse: Symbol = Symbol::new(1711u32);
    pub const rustc_force_inline: Symbol = Symbol::new(1712u32);
    pub const rustc_has_incoherent_inherent_impls: Symbol =
        Symbol::new(1713u32);
    pub const rustc_if_this_changed: Symbol = Symbol::new(1714u32);
    pub const rustc_inherit_overflow_checks: Symbol = Symbol::new(1715u32);
    pub const rustc_insignificant_dtor: Symbol = Symbol::new(1716u32);
    pub const rustc_intrinsic: Symbol = Symbol::new(1717u32);
    pub const rustc_intrinsic_const_stable_indirect: Symbol =
        Symbol::new(1718u32);
    pub const rustc_legacy_const_generics: Symbol = Symbol::new(1719u32);
    pub const rustc_lint_opt_deny_field_access: Symbol = Symbol::new(1720u32);
    pub const rustc_lint_opt_ty: Symbol = Symbol::new(1721u32);
    pub const rustc_lint_query_instability: Symbol = Symbol::new(1722u32);
    pub const rustc_lint_untracked_query_information: Symbol =
        Symbol::new(1723u32);
    pub const rustc_macro_transparency: Symbol = Symbol::new(1724u32);
    pub const rustc_main: Symbol = Symbol::new(1725u32);
    pub const rustc_mir: Symbol = Symbol::new(1726u32);
    pub const rustc_must_implement_one_of: Symbol = Symbol::new(1727u32);
    pub const rustc_must_match_exhaustively: Symbol = Symbol::new(1728u32);
    pub const rustc_never_returns_null_ptr: Symbol = Symbol::new(1729u32);
    pub const rustc_no_implicit_autorefs: Symbol = Symbol::new(1730u32);
    pub const rustc_no_implicit_bounds: Symbol = Symbol::new(1731u32);
    pub const rustc_no_mir_inline: Symbol = Symbol::new(1732u32);
    pub const rustc_no_writable: Symbol = Symbol::new(1733u32);
    pub const rustc_non_const_trait_method: Symbol = Symbol::new(1734u32);
    pub const rustc_nonnull_optimization_guaranteed: Symbol =
        Symbol::new(1735u32);
    pub const rustc_nounwind: Symbol = Symbol::new(1736u32);
    pub const rustc_objc_class: Symbol = Symbol::new(1737u32);
    pub const rustc_objc_selector: Symbol = Symbol::new(1738u32);
    pub const rustc_offload_kernel: Symbol = Symbol::new(1739u32);
    pub const rustc_on_unimplemented: Symbol = Symbol::new(1740u32);
    pub const rustc_panics_when_zero: Symbol = Symbol::new(1741u32);
    pub const rustc_paren_sugar: Symbol = Symbol::new(1742u32);
    pub const rustc_partition_codegened: Symbol = Symbol::new(1743u32);
    pub const rustc_partition_reused: Symbol = Symbol::new(1744u32);
    pub const rustc_pass_by_value: Symbol = Symbol::new(1745u32);
    pub const rustc_pass_indirectly_in_non_rustic_abis: Symbol =
        Symbol::new(1746u32);
    pub const rustc_peek: Symbol = Symbol::new(1747u32);
    pub const rustc_peek_liveness: Symbol = Symbol::new(1748u32);
    pub const rustc_peek_maybe_init: Symbol = Symbol::new(1749u32);
    pub const rustc_peek_maybe_uninit: Symbol = Symbol::new(1750u32);
    pub const rustc_preserve_ub_checks: Symbol = Symbol::new(1751u32);
    pub const rustc_private: Symbol = Symbol::new(1752u32);
    pub const rustc_proc_macro_decls: Symbol = Symbol::new(1753u32);
    pub const rustc_promotable: Symbol = Symbol::new(1754u32);
    pub const rustc_pub_transparent: Symbol = Symbol::new(1755u32);
    pub const rustc_reallocator: Symbol = Symbol::new(1756u32);
    pub const rustc_regions: Symbol = Symbol::new(1757u32);
    pub const rustc_scalable_vector: Symbol = Symbol::new(1758u32);
    pub const rustc_should_not_be_called_on_const_items: Symbol =
        Symbol::new(1759u32);
    pub const rustc_simd_monomorphize_lane_limit: Symbol =
        Symbol::new(1760u32);
    pub const rustc_skip_during_method_dispatch: Symbol =
        Symbol::new(1761u32);
    pub const rustc_specialization_trait: Symbol = Symbol::new(1762u32);
    pub const rustc_splat: Symbol = Symbol::new(1763u32);
    pub const rustc_std_internal_symbol: Symbol = Symbol::new(1764u32);
    pub const rustc_strict_coherence: Symbol = Symbol::new(1765u32);
    pub const rustc_test_marker: Symbol = Symbol::new(1766u32);
    pub const rustc_then_this_would_need: Symbol = Symbol::new(1767u32);
    pub const rustc_trivial_field_reads: Symbol = Symbol::new(1768u32);
    pub const rustc_unroll: Symbol = Symbol::new(1769u32);
    pub const rustdoc: Symbol = Symbol::new(1770u32);
    pub const rustdoc_internals: Symbol = Symbol::new(1771u32);
    pub const rustdoc_missing_doc_code_examples: Symbol =
        Symbol::new(1772u32);
    pub const rustfmt: Symbol = Symbol::new(1773u32);
    pub const rvalue_static_promotion: Symbol = Symbol::new(1774u32);
    pub const rvector: Symbol = Symbol::new(1775u32);
    pub const rwpi: Symbol = Symbol::new(1776u32);
    pub const s32c1i: Symbol = Symbol::new(1777u32);
    pub const s390x: Symbol = Symbol::new(1778u32);
    pub const s390x_target_feature: Symbol = Symbol::new(1779u32);
    pub const s390x_target_feature_vector: Symbol = Symbol::new(1780u32);
    pub const safestack: Symbol = Symbol::new(1781u32);
    pub const safety: Symbol = Symbol::new(1782u32);
    pub const sanitize: Symbol = Symbol::new(1783u32);
    pub const sanitizer_cfi_generalize_pointers: Symbol =
        Symbol::new(1784u32);
    pub const sanitizer_cfi_normalize_integers: Symbol = Symbol::new(1785u32);
    pub const sanitizer_runtime: Symbol = Symbol::new(1786u32);
    pub const saturating_add: Symbol = Symbol::new(1787u32);
    pub const saturating_sub: Symbol = Symbol::new(1788u32);
    pub const sdylib: Symbol = Symbol::new(1789u32);
    pub const search_unbox: Symbol = Symbol::new(1790u32);
    pub const section: Symbol = Symbol::new(1791u32);
    pub const select_unpredictable: Symbol = Symbol::new(1792u32);
    pub const self_in_typedefs: Symbol = Symbol::new(1793u32);
    pub const self_struct_ctor: Symbol = Symbol::new(1794u32);
    pub const semiopaque: Symbol = Symbol::new(1795u32);
    pub const sgpr32: Symbol = Symbol::new(1796u32);
    pub const sgpr64: Symbol = Symbol::new(1797u32);
    pub const sgpr96: Symbol = Symbol::new(1798u32);
    pub const sgpr128: Symbol = Symbol::new(1799u32);
    pub const sgpr256: Symbol = Symbol::new(1800u32);
    pub const sgpr512: Symbol = Symbol::new(1801u32);
    pub const sha2: Symbol = Symbol::new(1802u32);
    pub const sha3: Symbol = Symbol::new(1803u32);
    pub const sha512_sm_x86: Symbol = Symbol::new(1804u32);
    pub const shadow_call_stack: Symbol = Symbol::new(1805u32);
    pub const shallow: Symbol = Symbol::new(1806u32);
    pub const shl: Symbol = Symbol::new(1807u32);
    pub const shl_assign: Symbol = Symbol::new(1808u32);
    pub const shorter_tail_lifetimes: Symbol = Symbol::new(1809u32);
    pub const should_panic: Symbol = Symbol::new(1810u32);
    pub const show: Symbol = Symbol::new(1811u32);
    pub const shr: Symbol = Symbol::new(1812u32);
    pub const shr_assign: Symbol = Symbol::new(1813u32);
    pub const signed: Symbol = Symbol::new(1814u32);
    pub const simd: Symbol = Symbol::new(1815u32);
    pub const simd_add: Symbol = Symbol::new(1816u32);
    pub const simd_and: Symbol = Symbol::new(1817u32);
    pub const simd_arith_offset: Symbol = Symbol::new(1818u32);
    pub const simd_as: Symbol = Symbol::new(1819u32);
    pub const simd_bitmask: Symbol = Symbol::new(1820u32);
    pub const simd_bitreverse: Symbol = Symbol::new(1821u32);
    pub const simd_bswap: Symbol = Symbol::new(1822u32);
    pub const simd_carryless_mul: Symbol = Symbol::new(1823u32);
    pub const simd_cast: Symbol = Symbol::new(1824u32);
    pub const simd_cast_ptr: Symbol = Symbol::new(1825u32);
    pub const simd_ceil: Symbol = Symbol::new(1826u32);
    pub const simd_ctlz: Symbol = Symbol::new(1827u32);
    pub const simd_ctpop: Symbol = Symbol::new(1828u32);
    pub const simd_cttz: Symbol = Symbol::new(1829u32);
    pub const simd_div: Symbol = Symbol::new(1830u32);
    pub const simd_eq: Symbol = Symbol::new(1831u32);
    pub const simd_expose_provenance: Symbol = Symbol::new(1832u32);
    pub const simd_extract: Symbol = Symbol::new(1833u32);
    pub const simd_extract_dyn: Symbol = Symbol::new(1834u32);
    pub const simd_fabs: Symbol = Symbol::new(1835u32);
    pub const simd_fcos: Symbol = Symbol::new(1836u32);
    pub const simd_fexp: Symbol = Symbol::new(1837u32);
    pub const simd_fexp2: Symbol = Symbol::new(1838u32);
    pub const simd_ffi: Symbol = Symbol::new(1839u32);
    pub const simd_flog: Symbol = Symbol::new(1840u32);
    pub const simd_flog2: Symbol = Symbol::new(1841u32);
    pub const simd_flog10: Symbol = Symbol::new(1842u32);
    pub const simd_floor: Symbol = Symbol::new(1843u32);
    pub const simd_fma: Symbol = Symbol::new(1844u32);
    pub const simd_fsin: Symbol = Symbol::new(1845u32);
    pub const simd_fsqrt: Symbol = Symbol::new(1846u32);
    pub const simd_funnel_shl: Symbol = Symbol::new(1847u32);
    pub const simd_funnel_shr: Symbol = Symbol::new(1848u32);
    pub const simd_gather: Symbol = Symbol::new(1849u32);
    pub const simd_ge: Symbol = Symbol::new(1850u32);
    pub const simd_gt: Symbol = Symbol::new(1851u32);
    pub const simd_insert: Symbol = Symbol::new(1852u32);
    pub const simd_insert_dyn: Symbol = Symbol::new(1853u32);
    pub const simd_le: Symbol = Symbol::new(1854u32);
    pub const simd_lt: Symbol = Symbol::new(1855u32);
    pub const simd_masked_load: Symbol = Symbol::new(1856u32);
    pub const simd_masked_store: Symbol = Symbol::new(1857u32);
    pub const simd_maximum_number_nsz: Symbol = Symbol::new(1858u32);
    pub const simd_minimum_number_nsz: Symbol = Symbol::new(1859u32);
    pub const simd_mul: Symbol = Symbol::new(1860u32);
    pub const simd_ne: Symbol = Symbol::new(1861u32);
    pub const simd_neg: Symbol = Symbol::new(1862u32);
    pub const simd_or: Symbol = Symbol::new(1863u32);
    pub const simd_reduce_add_ordered: Symbol = Symbol::new(1864u32);
    pub const simd_reduce_add_unordered: Symbol = Symbol::new(1865u32);
    pub const simd_reduce_all: Symbol = Symbol::new(1866u32);
    pub const simd_reduce_and: Symbol = Symbol::new(1867u32);
    pub const simd_reduce_any: Symbol = Symbol::new(1868u32);
    pub const simd_reduce_max: Symbol = Symbol::new(1869u32);
    pub const simd_reduce_min: Symbol = Symbol::new(1870u32);
    pub const simd_reduce_mul_ordered: Symbol = Symbol::new(1871u32);
    pub const simd_reduce_mul_unordered: Symbol = Symbol::new(1872u32);
    pub const simd_reduce_or: Symbol = Symbol::new(1873u32);
    pub const simd_reduce_xor: Symbol = Symbol::new(1874u32);
    pub const simd_relaxed_fma: Symbol = Symbol::new(1875u32);
    pub const simd_rem: Symbol = Symbol::new(1876u32);
    pub const simd_round: Symbol = Symbol::new(1877u32);
    pub const simd_round_ties_even: Symbol = Symbol::new(1878u32);
    pub const simd_saturating_add: Symbol = Symbol::new(1879u32);
    pub const simd_saturating_sub: Symbol = Symbol::new(1880u32);
    pub const simd_scatter: Symbol = Symbol::new(1881u32);
    pub const simd_select: Symbol = Symbol::new(1882u32);
    pub const simd_select_bitmask: Symbol = Symbol::new(1883u32);
    pub const simd_shl: Symbol = Symbol::new(1884u32);
    pub const simd_shr: Symbol = Symbol::new(1885u32);
    pub const simd_shuffle: Symbol = Symbol::new(1886u32);
    pub const simd_shuffle_const_generic: Symbol = Symbol::new(1887u32);
    pub const simd_splat: Symbol = Symbol::new(1888u32);
    pub const simd_sub: Symbol = Symbol::new(1889u32);
    pub const simd_trunc: Symbol = Symbol::new(1890u32);
    pub const simd_with_exposed_provenance: Symbol = Symbol::new(1891u32);
    pub const simd_xor: Symbol = Symbol::new(1892u32);
    pub const sin: Symbol = Symbol::new(1893u32);
    pub const since: Symbol = Symbol::new(1894u32);
    pub const size: Symbol = Symbol::new(1895u32);
    pub const size_of: Symbol = Symbol::new(1896u32);
    pub const size_of_type_id: Symbol = Symbol::new(1897u32);
    pub const size_of_val: Symbol = Symbol::new(1898u32);
    pub const sized: Symbol = Symbol::new(1899u32);
    pub const sized_hierarchy: Symbol = Symbol::new(1900u32);
    pub const slice: Symbol = Symbol::new(1901u32);
    pub const slice_from_raw_parts: Symbol = Symbol::new(1902u32);
    pub const slice_from_raw_parts_mut: Symbol = Symbol::new(1903u32);
    pub const slice_get_unchecked: Symbol = Symbol::new(1904u32);
    pub const slice_len_fn: Symbol = Symbol::new(1905u32);
    pub const slice_patterns: Symbol = Symbol::new(1906u32);
    pub const slicing_syntax: Symbol = Symbol::new(1907u32);
    pub const soft_float: Symbol = Symbol::new(1908u32);
    pub const sparc: Symbol = Symbol::new(1909u32);
    pub const sparc64: Symbol = Symbol::new(1910u32);
    pub const sparc_target_feature: Symbol = Symbol::new(1911u32);
    pub const spe_acc: Symbol = Symbol::new(1912u32);
    pub const specialization: Symbol = Symbol::new(1913u32);
    pub const speed: Symbol = Symbol::new(1914u32);
    pub const spirv: Symbol = Symbol::new(1915u32);
    pub const splat: Symbol = Symbol::new(1916u32);
    pub const splatted_index: Symbol = Symbol::new(1917u32);
    pub const spotlight: Symbol = Symbol::new(1918u32);
    pub const sqrtf16: Symbol = Symbol::new(1919u32);
    pub const sqrtf32: Symbol = Symbol::new(1920u32);
    pub const sqrtf64: Symbol = Symbol::new(1921u32);
    pub const sqrtf128: Symbol = Symbol::new(1922u32);
    pub const sreg: Symbol = Symbol::new(1923u32);
    pub const sreg_low16: Symbol = Symbol::new(1924u32);
    pub const sse: Symbol = Symbol::new(1925u32);
    pub const sse2: Symbol = Symbol::new(1926u32);
    pub const sse4a_target_feature: Symbol = Symbol::new(1927u32);
    pub const stable: Symbol = Symbol::new(1928u32);
    pub const staged_api: Symbol = Symbol::new(1929u32);
    pub const start: Symbol = Symbol::new(1930u32);
    pub const state: Symbol = Symbol::new(1931u32);
    pub const static_align: Symbol = Symbol::new(1932u32);
    pub const static_in_const: Symbol = Symbol::new(1933u32);
    pub const static_nobundle: Symbol = Symbol::new(1934u32);
    pub const static_recursion: Symbol = Symbol::new(1935u32);
    pub const staticlib: Symbol = Symbol::new(1936u32);
    pub const std: Symbol = Symbol::new(1937u32);
    pub const std_lib_injection: Symbol = Symbol::new(1938u32);
    pub const std_panic: Symbol = Symbol::new(1939u32);
    pub const std_panic_2015_macro: Symbol = Symbol::new(1940u32);
    pub const std_panic_macro: Symbol = Symbol::new(1941u32);
    pub const stmt: Symbol = Symbol::new(1942u32);
    pub const stmt_expr_attributes: Symbol = Symbol::new(1943u32);
    pub const stop_after_dataflow: Symbol = Symbol::new(1944u32);
    pub const store: Symbol = Symbol::new(1945u32);
    pub const str: Symbol = Symbol::new(1946u32);
    pub const str_from_utf8: Symbol = Symbol::new(1947u32);
    pub const str_from_utf8_mut: Symbol = Symbol::new(1948u32);
    pub const str_from_utf8_unchecked: Symbol = Symbol::new(1949u32);
    pub const str_from_utf8_unchecked_mut: Symbol = Symbol::new(1950u32);
    pub const str_inherent_from_utf8: Symbol = Symbol::new(1951u32);
    pub const str_inherent_from_utf8_mut: Symbol = Symbol::new(1952u32);
    pub const str_inherent_from_utf8_unchecked: Symbol = Symbol::new(1953u32);
    pub const str_inherent_from_utf8_unchecked_mut: Symbol =
        Symbol::new(1954u32);
    pub const strict_provenance_lints: Symbol = Symbol::new(1955u32);
    pub const string_deref_patterns: Symbol = Symbol::new(1956u32);
    pub const stringify: Symbol = Symbol::new(1957u32);
    pub const struct_field_attributes: Symbol = Symbol::new(1958u32);
    pub const struct_inherit: Symbol = Symbol::new(1959u32);
    pub const struct_variant: Symbol = Symbol::new(1960u32);
    pub const structural_match: Symbol = Symbol::new(1961u32);
    pub const structural_peq: Symbol = Symbol::new(1962u32);
    pub const sub: Symbol = Symbol::new(1963u32);
    pub const sub_assign: Symbol = Symbol::new(1964u32);
    pub const sub_with_overflow: Symbol = Symbol::new(1965u32);
    pub const suggestion: Symbol = Symbol::new(1966u32);
    pub const super_let: Symbol = Symbol::new(1967u32);
    pub const supertrait_item_shadowing: Symbol = Symbol::new(1968u32);
    pub const sve: Symbol = Symbol::new(1969u32);
    pub const sve_cast: Symbol = Symbol::new(1970u32);
    pub const sve_tuple_create2: Symbol = Symbol::new(1971u32);
    pub const sve_tuple_create3: Symbol = Symbol::new(1972u32);
    pub const sve_tuple_create4: Symbol = Symbol::new(1973u32);
    pub const sve_tuple_get: Symbol = Symbol::new(1974u32);
    pub const sve_tuple_set: Symbol = Symbol::new(1975u32);
    pub const sym: Symbol = Symbol::new(1976u32);
    pub const sync: Symbol = Symbol::new(1977u32);
    pub const synthetic: Symbol = Symbol::new(1978u32);
    pub const t32: Symbol = Symbol::new(1979u32);
    pub const target: Symbol = Symbol::new(1980u32);
    pub const target_abi: Symbol = Symbol::new(1981u32);
    pub const target_arch: Symbol = Symbol::new(1982u32);
    pub const target_endian: Symbol = Symbol::new(1983u32);
    pub const target_env: Symbol = Symbol::new(1984u32);
    pub const target_family: Symbol = Symbol::new(1985u32);
    pub const target_feature: Symbol = Symbol::new(1986u32);
    pub const target_feature_11: Symbol = Symbol::new(1987u32);
    pub const target_feature_inline_always: Symbol = Symbol::new(1988u32);
    pub const target_has_atomic: Symbol = Symbol::new(1989u32);
    pub const target_has_atomic_load_store: Symbol = Symbol::new(1990u32);
    pub const target_has_atomic_primitive_alignment: Symbol =
        Symbol::new(1991u32);
    pub const target_has_reliable_f16: Symbol = Symbol::new(1992u32);
    pub const target_has_reliable_f16_math: Symbol = Symbol::new(1993u32);
    pub const target_has_reliable_f128: Symbol = Symbol::new(1994u32);
    pub const target_has_reliable_f128_math: Symbol = Symbol::new(1995u32);
    pub const target_has_threads: Symbol = Symbol::new(1996u32);
    pub const target_object_format: Symbol = Symbol::new(1997u32);
    pub const target_os: Symbol = Symbol::new(1998u32);
    pub const target_pointer_width: Symbol = Symbol::new(1999u32);
    pub const target_thread_local: Symbol = Symbol::new(2000u32);
    pub const target_vendor: Symbol = Symbol::new(2001u32);
    pub const tbm_target_feature: Symbol = Symbol::new(2002u32);
    pub const termination: Symbol = Symbol::new(2003u32);
    pub const termination_trait: Symbol = Symbol::new(2004u32);
    pub const termination_trait_test: Symbol = Symbol::new(2005u32);
    pub const test: Symbol = Symbol::new(2006u32);
    pub const test_2018_feature: Symbol = Symbol::new(2007u32);
    pub const test_accepted_feature: Symbol = Symbol::new(2008u32);
    pub const test_binder_constraints: Symbol = Symbol::new(2009u32);
    pub const test_case: Symbol = Symbol::new(2010u32);
    pub const test_incomplete_feature: Symbol = Symbol::new(2011u32);
    pub const test_removed_feature: Symbol = Symbol::new(2012u32);
    pub const test_runner: Symbol = Symbol::new(2013u32);
    pub const test_unstable_lint: Symbol = Symbol::new(2014u32);
    pub const thread: Symbol = Symbol::new(2015u32);
    pub const thread_local: Symbol = Symbol::new(2016u32);
    pub const threadptr: Symbol = Symbol::new(2017u32);
    pub const three_way_compare: Symbol = Symbol::new(2018u32);
    pub const thumb2: Symbol = Symbol::new(2019u32);
    pub const thumb_mode: Symbol = Symbol::new(2020u32);
    pub const time: Symbol = Symbol::new(2021u32);
    pub const tmm_reg: Symbol = Symbol::new(2022u32);
    pub const to_owned_method: Symbol = Symbol::new(2023u32);
    pub const to_string: Symbol = Symbol::new(2024u32);
    pub const to_vec: Symbol = Symbol::new(2025u32);
    pub const tool_attributes: Symbol = Symbol::new(2026u32);
    pub const tool_lints: Symbol = Symbol::new(2027u32);
    pub const trace_macros: Symbol = Symbol::new(2028u32);
    pub const track_caller: Symbol = Symbol::new(2029u32);
    pub const trait_alias: Symbol = Symbol::new(2030u32);
    pub const trait_ty: Symbol = Symbol::new(2031u32);
    pub const trait_upcasting: Symbol = Symbol::new(2032u32);
    pub const transmute: Symbol = Symbol::new(2033u32);
    pub const transmute_generic_consts: Symbol = Symbol::new(2034u32);
    pub const transmute_opts: Symbol = Symbol::new(2035u32);
    pub const transmute_trait: Symbol = Symbol::new(2036u32);
    pub const transmute_unchecked: Symbol = Symbol::new(2037u32);
    pub const transparent: Symbol = Symbol::new(2038u32);
    pub const transparent_enums: Symbol = Symbol::new(2039u32);
    pub const transparent_unions: Symbol = Symbol::new(2040u32);
    pub const trivial_bounds: Symbol = Symbol::new(2041u32);
    pub const trivial_clone: Symbol = Symbol::new(2042u32);
    pub const truncf16: Symbol = Symbol::new(2043u32);
    pub const truncf32: Symbol = Symbol::new(2044u32);
    pub const truncf64: Symbol = Symbol::new(2045u32);
    pub const truncf128: Symbol = Symbol::new(2046u32);
    pub const try_as_dyn: Symbol = Symbol::new(2047u32);
    pub const try_blocks: Symbol = Symbol::new(2048u32);
    pub const try_blocks_heterogeneous: Symbol = Symbol::new(2049u32);
    pub const try_capture: Symbol = Symbol::new(2050u32);
    pub const try_from: Symbol = Symbol::new(2051u32);
    pub const try_into: Symbol = Symbol::new(2052u32);
    pub const try_trait_v2: Symbol = Symbol::new(2053u32);
    pub const try_trait_v2_residual: Symbol = Symbol::new(2054u32);
    pub const try_update: Symbol = Symbol::new(2055u32);
    pub const tt: Symbol = Symbol::new(2056u32);
    pub const tuple: Symbol = Symbol::new(2057u32);
    pub const tuple_indexing: Symbol = Symbol::new(2058u32);
    pub const tuple_trait: Symbol = Symbol::new(2059u32);
    pub const two_phase: Symbol = Symbol::new(2060u32);
    pub const ty: Symbol = Symbol::new(2061u32);
    pub const type_alias_enum_variants: Symbol = Symbol::new(2062u32);
    pub const type_alias_impl_trait: Symbol = Symbol::new(2063u32);
    pub const type_ascribe: Symbol = Symbol::new(2064u32);
    pub const type_ascription: Symbol = Symbol::new(2065u32);
    pub const type_changing_struct_update: Symbol = Symbol::new(2066u32);
    pub const type_id: Symbol = Symbol::new(2067u32);
    pub const type_id_eq: Symbol = Symbol::new(2068u32);
    pub const type_id_field_representing_type: Symbol = Symbol::new(2069u32);
    pub const type_id_fields: Symbol = Symbol::new(2070u32);
    pub const type_id_generics: Symbol = Symbol::new(2071u32);
    pub const type_id_is_signed: Symbol = Symbol::new(2072u32);
    pub const type_id_variants: Symbol = Symbol::new(2073u32);
    pub const type_id_vtable: Symbol = Symbol::new(2074u32);
    pub const type_info: Symbol = Symbol::new(2075u32);
    pub const type_info_generic: Symbol = Symbol::new(2076u32);
    pub const type_ir: Symbol = Symbol::new(2077u32);
    pub const type_ir_infer_ctxt_like: Symbol = Symbol::new(2078u32);
    pub const type_ir_inherent: Symbol = Symbol::new(2079u32);
    pub const type_ir_interner: Symbol = Symbol::new(2080u32);
    pub const type_length_limit: Symbol = Symbol::new(2081u32);
    pub const type_macros: Symbol = Symbol::new(2082u32);
    pub const type_name: Symbol = Symbol::new(2083u32);
    pub const type_of: Symbol = Symbol::new(2084u32);
    pub const type_privacy_lints: Symbol = Symbol::new(2085u32);
    pub const typed_swap_nonoverlapping: Symbol = Symbol::new(2086u32);
    pub const u8: Symbol = Symbol::new(2087u32);
    pub const u8_legacy_const_max: Symbol = Symbol::new(2088u32);
    pub const u8_legacy_const_min: Symbol = Symbol::new(2089u32);
    pub const u8_legacy_fn_max_value: Symbol = Symbol::new(2090u32);
    pub const u8_legacy_fn_min_value: Symbol = Symbol::new(2091u32);
    pub const u8_legacy_mod: Symbol = Symbol::new(2092u32);
    pub const u16: Symbol = Symbol::new(2093u32);
    pub const u16_legacy_const_max: Symbol = Symbol::new(2094u32);
    pub const u16_legacy_const_min: Symbol = Symbol::new(2095u32);
    pub const u16_legacy_fn_max_value: Symbol = Symbol::new(2096u32);
    pub const u16_legacy_fn_min_value: Symbol = Symbol::new(2097u32);
    pub const u16_legacy_mod: Symbol = Symbol::new(2098u32);
    pub const u32: Symbol = Symbol::new(2099u32);
    pub const u32_legacy_const_max: Symbol = Symbol::new(2100u32);
    pub const u32_legacy_const_min: Symbol = Symbol::new(2101u32);
    pub const u32_legacy_fn_max_value: Symbol = Symbol::new(2102u32);
    pub const u32_legacy_fn_min_value: Symbol = Symbol::new(2103u32);
    pub const u32_legacy_mod: Symbol = Symbol::new(2104u32);
    pub const u64: Symbol = Symbol::new(2105u32);
    pub const u64_legacy_const_max: Symbol = Symbol::new(2106u32);
    pub const u64_legacy_const_min: Symbol = Symbol::new(2107u32);
    pub const u64_legacy_fn_max_value: Symbol = Symbol::new(2108u32);
    pub const u64_legacy_fn_min_value: Symbol = Symbol::new(2109u32);
    pub const u64_legacy_mod: Symbol = Symbol::new(2110u32);
    pub const u128: Symbol = Symbol::new(2111u32);
    pub const u128_legacy_const_max: Symbol = Symbol::new(2112u32);
    pub const u128_legacy_const_min: Symbol = Symbol::new(2113u32);
    pub const u128_legacy_fn_max_value: Symbol = Symbol::new(2114u32);
    pub const u128_legacy_fn_min_value: Symbol = Symbol::new(2115u32);
    pub const u128_legacy_mod: Symbol = Symbol::new(2116u32);
    pub const ub_checks: Symbol = Symbol::new(2117u32);
    pub const unaligned_volatile_load: Symbol = Symbol::new(2118u32);
    pub const unaligned_volatile_store: Symbol = Symbol::new(2119u32);
    pub const unboxed_closures: Symbol = Symbol::new(2120u32);
    pub const unchecked_add: Symbol = Symbol::new(2121u32);
    pub const unchecked_div: Symbol = Symbol::new(2122u32);
    pub const unchecked_funnel_shl: Symbol = Symbol::new(2123u32);
    pub const unchecked_funnel_shr: Symbol = Symbol::new(2124u32);
    pub const unchecked_mul: Symbol = Symbol::new(2125u32);
    pub const unchecked_rem: Symbol = Symbol::new(2126u32);
    pub const unchecked_shl: Symbol = Symbol::new(2127u32);
    pub const unchecked_shr: Symbol = Symbol::new(2128u32);
    pub const unchecked_sub: Symbol = Symbol::new(2129u32);
    pub const undecorated: Symbol = Symbol::new(2130u32);
    pub const underscore_const_names: Symbol = Symbol::new(2131u32);
    pub const underscore_imports: Symbol = Symbol::new(2132u32);
    pub const underscore_lifetimes: Symbol = Symbol::new(2133u32);
    pub const uniform_paths: Symbol = Symbol::new(2134u32);
    pub const unimplemented: Symbol = Symbol::new(2135u32);
    pub const unit: Symbol = Symbol::new(2136u32);
    pub const universal_impl_trait: Symbol = Symbol::new(2137u32);
    pub const unix: Symbol = Symbol::new(2138u32);
    pub const unlikely: Symbol = Symbol::new(2139u32);
    pub const unmarked_api: Symbol = Symbol::new(2140u32);
    pub const unnamed_enum_variants: Symbol = Symbol::new(2141u32);
    pub const unnamed_fields: Symbol = Symbol::new(2142u32);
    pub const unpin: Symbol = Symbol::new(2143u32);
    pub const unqualified_local_imports: Symbol = Symbol::new(2144u32);
    pub const unreachable: Symbol = Symbol::new(2145u32);
    pub const unreachable_2015: Symbol = Symbol::new(2146u32);
    pub const unreachable_2015_macro: Symbol = Symbol::new(2147u32);
    pub const unreachable_2021: Symbol = Symbol::new(2148u32);
    pub const unreachable_code: Symbol = Symbol::new(2149u32);
    pub const unreachable_display: Symbol = Symbol::new(2150u32);
    pub const unreachable_macro: Symbol = Symbol::new(2151u32);
    pub const unrestricted_attribute_tokens: Symbol = Symbol::new(2152u32);
    pub const unsafe_attributes: Symbol = Symbol::new(2153u32);
    pub const unsafe_binders: Symbol = Symbol::new(2154u32);
    pub const unsafe_block_in_unsafe_fn: Symbol = Symbol::new(2155u32);
    pub const unsafe_cell: Symbol = Symbol::new(2156u32);
    pub const unsafe_cell_raw_get: Symbol = Symbol::new(2157u32);
    pub const unsafe_eii: Symbol = Symbol::new(2158u32);
    pub const unsafe_extern_blocks: Symbol = Symbol::new(2159u32);
    pub const unsafe_fields: Symbol = Symbol::new(2160u32);
    pub const unsafe_no_drop_flag: Symbol = Symbol::new(2161u32);
    pub const unsafe_pinned: Symbol = Symbol::new(2162u32);
    pub const unsafe_unpin: Symbol = Symbol::new(2163u32);
    pub const unsafety: Symbol = Symbol::new(2164u32);
    pub const unsize: Symbol = Symbol::new(2165u32);
    pub const unsized_const_param_ty: Symbol = Symbol::new(2166u32);
    pub const unsized_const_params: Symbol = Symbol::new(2167u32);
    pub const unsized_fn_params: Symbol = Symbol::new(2168u32);
    pub const unsized_locals: Symbol = Symbol::new(2169u32);
    pub const unsized_tuple_coercion: Symbol = Symbol::new(2170u32);
    pub const unstable: Symbol = Symbol::new(2171u32);
    pub const unstable_feature_bound: Symbol = Symbol::new(2172u32);
    pub const unstable_location_reason_default: Symbol = Symbol::new(2173u32);
    pub const unstable_removed: Symbol = Symbol::new(2174u32);
    pub const untagged_unions: Symbol = Symbol::new(2175u32);
    pub const unused_imports: Symbol = Symbol::new(2176u32);
    pub const unwind: Symbol = Symbol::new(2177u32);
    pub const unwind_attributes: Symbol = Symbol::new(2178u32);
    pub const unwind_safe_trait: Symbol = Symbol::new(2179u32);
    pub const unwrap: Symbol = Symbol::new(2180u32);
    pub const unwrap_binder: Symbol = Symbol::new(2181u32);
    pub const unwrap_or: Symbol = Symbol::new(2182u32);
    pub const update: Symbol = Symbol::new(2183u32);
    pub const use_cloned: Symbol = Symbol::new(2184u32);
    pub const use_extern_macros: Symbol = Symbol::new(2185u32);
    pub const use_nested_groups: Symbol = Symbol::new(2186u32);
    pub const used: Symbol = Symbol::new(2187u32);
    pub const used_with_arg: Symbol = Symbol::new(2188u32);
    pub const using: Symbol = Symbol::new(2189u32);
    pub const usize: Symbol = Symbol::new(2190u32);
    pub const usize_legacy_const_max: Symbol = Symbol::new(2191u32);
    pub const usize_legacy_const_min: Symbol = Symbol::new(2192u32);
    pub const usize_legacy_fn_max_value: Symbol = Symbol::new(2193u32);
    pub const usize_legacy_fn_min_value: Symbol = Symbol::new(2194u32);
    pub const usize_legacy_mod: Symbol = Symbol::new(2195u32);
    pub const v1: Symbol = Symbol::new(2196u32);
    pub const v8plus: Symbol = Symbol::new(2197u32);
    pub const v9: Symbol = Symbol::new(2198u32);
    pub const va_arg: Symbol = Symbol::new(2199u32);
    pub const va_arg_safe: Symbol = Symbol::new(2200u32);
    pub const va_copy: Symbol = Symbol::new(2201u32);
    pub const va_end: Symbol = Symbol::new(2202u32);
    pub const va_list: Symbol = Symbol::new(2203u32);
    pub const val: Symbol = Symbol::new(2204u32);
    pub const validity: Symbol = Symbol::new(2205u32);
    pub const value: Symbol = Symbol::new(2206u32);
    pub const values: Symbol = Symbol::new(2207u32);
    pub const var: Symbol = Symbol::new(2208u32);
    pub const variadic: Symbol = Symbol::new(2209u32);
    pub const variant_count: Symbol = Symbol::new(2210u32);
    pub const variant_name: Symbol = Symbol::new(2211u32);
    pub const variant_non_exhaustive: Symbol = Symbol::new(2212u32);
    pub const variants: Symbol = Symbol::new(2213u32);
    pub const vec: Symbol = Symbol::new(2214u32);
    pub const vector: Symbol = Symbol::new(2215u32);
    pub const verbatim: Symbol = Symbol::new(2216u32);
    pub const version: Symbol = Symbol::new(2217u32);
    pub const vfp2: Symbol = Symbol::new(2218u32);
    pub const vgpr16: Symbol = Symbol::new(2219u32);
    pub const vgpr32: Symbol = Symbol::new(2220u32);
    pub const vgpr64: Symbol = Symbol::new(2221u32);
    pub const vgpr96: Symbol = Symbol::new(2222u32);
    pub const vgpr128: Symbol = Symbol::new(2223u32);
    pub const vgpr160: Symbol = Symbol::new(2224u32);
    pub const vgpr192: Symbol = Symbol::new(2225u32);
    pub const vgpr224: Symbol = Symbol::new(2226u32);
    pub const vgpr256: Symbol = Symbol::new(2227u32);
    pub const vgpr288: Symbol = Symbol::new(2228u32);
    pub const vgpr320: Symbol = Symbol::new(2229u32);
    pub const vgpr352: Symbol = Symbol::new(2230u32);
    pub const vgpr384: Symbol = Symbol::new(2231u32);
    pub const vgpr512: Symbol = Symbol::new(2232u32);
    pub const vgpr1024: Symbol = Symbol::new(2233u32);
    pub const view_type: Symbol = Symbol::new(2234u32);
    pub const view_types: Symbol = Symbol::new(2235u32);
    pub const vis: Symbol = Symbol::new(2236u32);
    pub const visible_private_types: Symbol = Symbol::new(2237u32);
    pub const volatile: Symbol = Symbol::new(2238u32);
    pub const volatile_copy_memory: Symbol = Symbol::new(2239u32);
    pub const volatile_copy_nonoverlapping_memory: Symbol =
        Symbol::new(2240u32);
    pub const volatile_load: Symbol = Symbol::new(2241u32);
    pub const volatile_set_memory: Symbol = Symbol::new(2242u32);
    pub const volatile_store: Symbol = Symbol::new(2243u32);
    pub const vreg: Symbol = Symbol::new(2244u32);
    pub const vreg_low16: Symbol = Symbol::new(2245u32);
    pub const vreg_pair: Symbol = Symbol::new(2246u32);
    pub const vsreg: Symbol = Symbol::new(2247u32);
    pub const vsx: Symbol = Symbol::new(2248u32);
    pub const vtable_align: Symbol = Symbol::new(2249u32);
    pub const vtable_size: Symbol = Symbol::new(2250u32);
    pub const warn: Symbol = Symbol::new(2251u32);
    pub const wasip2: Symbol = Symbol::new(2252u32);
    pub const wasm: Symbol = Symbol::new(2253u32);
    pub const wasm32: Symbol = Symbol::new(2254u32);
    pub const wasm64: Symbol = Symbol::new(2255u32);
    pub const wasm_abi: Symbol = Symbol::new(2256u32);
    pub const wasm_import_module: Symbol = Symbol::new(2257u32);
    pub const wasm_target_feature: Symbol = Symbol::new(2258u32);
    pub const weak: Symbol = Symbol::new(2259u32);
    pub const weak_odr: Symbol = Symbol::new(2260u32);
    pub const where_clause_attrs: Symbol = Symbol::new(2261u32);
    pub const while_let: Symbol = Symbol::new(2262u32);
    pub const whole_dash_archive: Symbol = Symbol::new(2263u32);
    pub const width: Symbol = Symbol::new(2264u32);
    pub const windowed: Symbol = Symbol::new(2265u32);
    pub const windows: Symbol = Symbol::new(2266u32);
    pub const windows_subsystem: Symbol = Symbol::new(2267u32);
    pub const with_negative_coherence: Symbol = Symbol::new(2268u32);
    pub const wrap_binder: Symbol = Symbol::new(2269u32);
    pub const wrapping_add: Symbol = Symbol::new(2270u32);
    pub const wrapping_div: Symbol = Symbol::new(2271u32);
    pub const wrapping_mul: Symbol = Symbol::new(2272u32);
    pub const wrapping_rem: Symbol = Symbol::new(2273u32);
    pub const wrapping_rem_euclid: Symbol = Symbol::new(2274u32);
    pub const wrapping_sub: Symbol = Symbol::new(2275u32);
    pub const wreg: Symbol = Symbol::new(2276u32);
    pub const write_box_via_move: Symbol = Symbol::new(2277u32);
    pub const write_bytes: Symbol = Symbol::new(2278u32);
    pub const write_fmt: Symbol = Symbol::new(2279u32);
    pub const write_macro: Symbol = Symbol::new(2280u32);
    pub const write_str: Symbol = Symbol::new(2281u32);
    pub const write_via_move: Symbol = Symbol::new(2282u32);
    pub const writeln_macro: Symbol = Symbol::new(2283u32);
    pub const x86: Symbol = Symbol::new(2284u32);
    pub const x86_64: Symbol = Symbol::new(2285u32);
    pub const x86_amx_intrinsics: Symbol = Symbol::new(2286u32);
    pub const x87_reg: Symbol = Symbol::new(2287u32);
    pub const x87_target_feature: Symbol = Symbol::new(2288u32);
    pub const xcoff: Symbol = Symbol::new(2289u32);
    pub const xer: Symbol = Symbol::new(2290u32);
    pub const xloop: Symbol = Symbol::new(2291u32);
    pub const xmm_reg: Symbol = Symbol::new(2292u32);
    pub const xop_target_feature: Symbol = Symbol::new(2293u32);
    pub const xreg: Symbol = Symbol::new(2294u32);
    pub const xtensa: Symbol = Symbol::new(2295u32);
    pub const xtensa_target_feature: Symbol = Symbol::new(2296u32);
    pub const yeet_desugar_details: Symbol = Symbol::new(2297u32);
    pub const yeet_expr: Symbol = Symbol::new(2298u32);
    pub const yes: Symbol = Symbol::new(2299u32);
    pub const yield_expr: Symbol = Symbol::new(2300u32);
    pub const ymm_reg: Symbol = Symbol::new(2301u32);
    pub const yreg: Symbol = Symbol::new(2302u32);
    pub const zca: Symbol = Symbol::new(2303u32);
    pub const zfh: Symbol = Symbol::new(2304u32);
    pub const zfhmin: Symbol = Symbol::new(2305u32);
    pub const zmm_reg: Symbol = Symbol::new(2306u32);
    pub const ztso: Symbol = Symbol::new(2307u32);
    pub const env_CFG_RELEASE: Symbol = Symbol::new(2370u32);
}
impl Interner {
    #[doc =
    r" Creates an `Interner` with the predefined symbols from the `symbols!` macro and"]
    #[doc = r" any extra symbols provided by external drivers such as Clippy"]
    pub(crate) fn with_extra_symbols(extra_symbols: &[&'static str]) -> Self {
        Interner::prefill(&["$crate", "{{root}}", "_", "as", "break", "const",
                        "continue", "crate", "else", "enum", "extern", "false",
                        "fn", "for", "if", "impl", "in", "let", "loop", "match",
                        "mod", "move", "mut", "pub", "ref", "return", "self",
                        "Self", "static", "struct", "super", "trait", "true",
                        "type", "unsafe", "use", "where", "while", "abstract",
                        "become", "box", "do", "final", "macro", "override", "priv",
                        "typeof", "unsized", "virtual", "yield", "async", "await",
                        "dyn", "gen", "try", "'static", "'_", "auto", "builtin",
                        "catch", "contract_ensures", "contract_requires", "default",
                        "macro_rules", "pin", "raw", "reuse", "safe", "union",
                        "yeet", "Abi", "AcqRel", "Acquire", "Active", "ActiveOnly",
                        "Alignment", "Arc", "ArcWeak", "Array", "AsMut", "AsRef",
                        "AssertParamIsClone", "AssertParamIsCopy",
                        "AssertParamIsEq", "AsyncGenFinished", "AsyncGenPending",
                        "AsyncGenReady", "Atomic", "BTreeMap", "Bool", "Borrow",
                        "BorrowMut", "Break", "BuildHasher", "CStr",
                        "CallOnceFuture", "CallRefFuture", "Capture", "Cell",
                        "Char", "Cleanup", "Client", "Clone", "CoercePointee",
                        "CoercePointeeValidated", "CoerceShared", "CoerceUnsized",
                        "Const", "ConstParamTy", "ConstParamTy_", "Context",
                        "Continue", "ControlFlow", "Copy", "Cow", "Debug",
                        "Default", "Deref", "DispatchFromDyn", "Display", "Dual",
                        "DualOnly", "Dualv", "DualvOnly", "Duplicated",
                        "DuplicatedOnly", "DynTrait", "Enum", "Eq", "Equal", "Err",
                        "Expected", "ExternC", "ExternRust", "Float",
                        "FmtArgumentsNew", "Fn", "FnMut", "FnOnce", "FnPtr",
                        "Formatter", "Forward", "Found", "From", "FromIterator",
                        "FromResidual", "GlobalAlloc", "Hash", "HashMap", "HashSet",
                        "Hasher", "InCleanup", "IndexOutput", "Input", "Int",
                        "Into", "IntoAsyncIterator", "IntoFuture", "IntoIterator",
                        "IntoIteratorItem", "IoBufReader", "IrTyKind", "Item",
                        "ItemContext", "Iterator", "IteratorItem", "IteratorMap",
                        "Layout", "Lifetime", "LintPass", "LocalKey", "Mutex",
                        "MutexGuard", "Named", "NonZero", "None", "Normal", "Ok",
                        "Option", "Ord", "Ordering", "Other", "Output", "ParamSet",
                        "PartialEq", "PartialOrd", "Pending", "PinDerefMutHelper",
                        "PinMacroHelper", "Pointer", "Poll", "Range", "RangeCopy",
                        "RangeFrom", "RangeFromCopy", "RangeFull", "RangeInclusive",
                        "RangeInclusiveCopy", "RangeMax", "RangeMin", "RangeSub",
                        "RangeTo", "RangeToInclusive", "RangeToInclusiveCopy", "Rc",
                        "RcWeak", "Ready", "Reborrow", "RefCell", "Reference",
                        "Relaxed", "Release", "Result", "ResumeTy", "Reverse",
                        "Rust", "RustEmbed", "RustaceansAreAwesome", "RwLock",
                        "RwLockReadGuard", "RwLockWriteGuard", "SelfTy", "Send",
                        "SeqCst", "Sized", "Slice", "SliceIndex", "Some", "Source",
                        "SpanCtxt", "StdinLock", "Str", "String", "Struct",
                        "StructuralPartialEq", "SymbolIntern", "Sync",
                        "SyncUnsafeCell", "Target", "This", "TokenStream",
                        "TrivialClone", "Try", "TryCaptureGeneric",
                        "TryCapturePrintable", "TryFrom", "TryInto", "Tuple", "Ty",
                        "TyCtxt", "TyKind", "Type", "Union", "Unresolved", "Unsize",
                        "Vec", "Wrapper", "_DECLS", "__H", "__S", "__awaitee",
                        "__try_var", "_t", "_task_context", "a32", "aarch64",
                        "aarch64_target_feature", "aarch64_unstable_target_feature",
                        "aarch64_ver_target_feature", "abi", "abi_amdgpu_kernel",
                        "abi_avr_interrupt", "abi_c_cmse_nonsecure_call",
                        "abi_cmse_nonsecure_call", "abi_custom", "abi_efiapi",
                        "abi_gpu_kernel", "abi_msp430_interrupt", "abi_ptx",
                        "abi_riscv_interrupt", "abi_swift", "abi_sysv64",
                        "abi_thiscall", "abi_unadjusted", "abi_vectorcall",
                        "abi_x86_interrupt", "abort", "add", "add_assign",
                        "add_with_overflow", "address", "adt_const_params",
                        "advanced_slice_patterns", "adx_target_feature", "aes",
                        "aggregate_raw_ptr", "alias", "align", "align_of",
                        "align_of_val", "alignment", "all", "alloc",
                        "alloc_error_handler", "alloc_layout", "alloc_zeroed",
                        "allocator", "allocator_api", "allocator_internals",
                        "allow", "allow_fail", "allow_internal_unsafe",
                        "allow_internal_unstable", "altivec", "alu32", "always",
                        "amdgpu", "amdgpu_dispatch_ptr", "analysis", "and",
                        "and_then", "anon", "anon_assoc",
                        "anonymous_lifetime_in_impl_trait", "any",
                        "apx_target_feature", "arbitrary_enum_discriminant",
                        "arbitrary_self_types", "arbitrary_self_types_pointers",
                        "areg", "args", "arith_offset", "arm", "arm64ec",
                        "arm::a32", "arm::t32", "arm_target_feature", "array",
                        "as-needed", "as_ref", "asm", "asm_cfg", "asm_const",
                        "asm_const_ptr", "asm_experimental_arch",
                        "asm_experimental_reg", "asm_goto", "asm_goto_with_outputs",
                        "asm_sym", "asm_unwind", "assert", "assert_eq",
                        "assert_eq_macro", "assert_fields_are_eq",
                        "assert_inhabited", "assert_macro",
                        "assert_mem_uninitialized_valid", "assert_ne_macro",
                        "assert_receiver_is_total_eq", "assert_zero_valid",
                        "asserting", "associated_const_equality",
                        "associated_consts", "associated_type_bounds",
                        "associated_type_defaults", "associated_types", "assume",
                        "assume_init", "*", "async_await", "async_call",
                        "async_call_mut", "async_call_once", "async_closure",
                        "async_drop", "async_drop_in_place", "async_fn",
                        "async_fn_in_dyn_trait", "async_fn_in_trait",
                        "async_fn_kind_helper", "async_fn_kind_upvars",
                        "async_fn_mut", "async_fn_once", "async_fn_once_output",
                        "async_fn_track_caller", "async_fn_traits",
                        "async_for_loop", "async_gen_internals", "async_iterator",
                        "async_iterator_poll_next", "async_trait_bounds", "atomic",
                        "atomic_and", "atomic_cxchg", "atomic_cxchgweak",
                        "atomic_fence", "atomic_load", "atomic_max", "atomic_min",
                        "atomic_nand", "atomic_or", "atomic_singlethreadfence",
                        "atomic_store", "atomic_umax", "atomic_umin", "atomic_xadd",
                        "atomic_xchg", "atomic_xor", "atomic_xsub", "atomics",
                        "att_syntax", "attr", "attr_literals", "attribute",
                        "attributes", "audit_that", "augmented_assignments",
                        "auto_cfg", "auto_traits", "autodiff", "autodiff_forward",
                        "autodiff_reverse", "automatically_derived",
                        "available_externally", "avr", "avr_target_feature", "avx",
                        "avx10_target_feature", "avx512_target_feature", "avx512bw",
                        "avx512f", "await_macro", "backchain", "backend_repr",
                        "begin_panic", "bench", "bevy_ecs", "bikeshed",
                        "bikeshed_guaranteed_no_drop", "bin",
                        "bind_by_move_pattern_guards", "bindings_after_at",
                        "bitand", "bitand_assign", "bitor", "bitor_assign",
                        "bitreverse", "bits", "bitxor", "bitxor_assign",
                        "black_box", "block", "blocking", "bool",
                        "borrowck_graphviz_format", "borrowck_graphviz_postflow",
                        "box_new", "box_patterns", "box_syntax", "boxed_slice",
                        "bpf", "bpf_target_feature", "braced_empty_structs",
                        "branch", "breakpoint", "breg", "bridge", "bswap", "built",
                        "builtin_syntax", "bundle", "c_dash_variadic",
                        "c_str_literals", "c_unwind", "c_variadic",
                        "c_variadic_experimental_arch",
                        "c_variadic_naked_functions", "c_void", "call", "call_mut",
                        "call_once", "call_once_future", "call_ref_future",
                        "caller", "caller_location", "capture_disjoint_fields",
                        "carrying_mul_add", "carryless_mul", "catch_unwind",
                        "cause", "cdylib", "ceilf16", "ceilf32", "ceilf64",
                        "ceilf128", "cfg", "cfg_accessible", "cfg_attr",
                        "cfg_attr_multi", "cfg_boolean_literals",
                        "cfg_contract_checks", "cfg_doctest", "cfg_eval",
                        "cfg_overflow_checks", "cfg_panic", "cfg_relocation_model",
                        "cfg_sanitize", "cfg_sanitizer_cfi", "cfg_select",
                        "cfg_target_abi", "cfg_target_compact",
                        "cfg_target_feature", "cfg_target_has_atomic",
                        "cfg_target_has_atomic_equal_alignment",
                        "cfg_target_has_reliable_f16_f128",
                        "cfg_target_has_threads", "cfg_target_object_format",
                        "cfg_target_thread_local", "cfg_target_vendor",
                        "cfg_ub_checks", "cfg_version", "cfi", "cfi_encoding",
                        "char", "checked_type_aliases", "clflushopt_target_feature",
                        "client", "clippy", "clobber_abi", "clone",
                        "clone_closures", "clone_fn", "clone_from", "close_fn",
                        "closure", "closure_lifetime_binder",
                        "closure_to_fn_coercion", "closure_track_caller", "cmp",
                        "cmp_ord_max", "cmp_ord_min", "cmp_partialeq_eq",
                        "cmp_partialeq_ne", "cmp_partialord_cmp",
                        "cmp_partialord_ge", "cmp_partialord_gt",
                        "cmp_partialord_le", "cmp_partialord_lt",
                        "cmpxchg16b_target_feature", "cmse_nonsecure_entry", "code",
                        "coerce_pointee_validated", "coerce_shared",
                        "coerce_shared_target", "coerce_unsized", "coff", "cold",
                        "cold_path", "collapse_debuginfo", "column", "common",
                        "compare_bytes", "compare_exchange",
                        "compare_exchange_weak", "compile_error", "compiler",
                        "compiler_builtins", "compiler_copy", "compiler_fence",
                        "compiler_move", "complex", "concat", "concat_bytes",
                        "conservative_impl_trait", "console", "const_allocate",
                        "const_async_blocks", "const_block_items",
                        "const_c_variadic", "const_closures",
                        "const_compare_raw_pointers", "const_constructor",
                        "const_continue", "const_deallocate", "const_destruct",
                        "const_eval_limit", "const_eval_select",
                        "const_evaluatable_checked", "const_extern_fn", "const_fn",
                        "const_fn_floating_point_arithmetic",
                        "const_fn_fn_ptr_basics", "const_fn_trait_bound",
                        "const_fn_transmute", "const_fn_union", "const_fn_unsize",
                        "const_for", "const_format_args", "const_generics",
                        "const_generics_defaults", "const_if_match",
                        "const_impl_trait", "const_in_array_repeat_expressions",
                        "const_indexing", "const_let", "const_loop",
                        "const_make_global", "const_mut_refs", "const_panic",
                        "const_panic_fmt", "const_param_ty",
                        "const_param_ty_unchecked", "const_precise_live_drops",
                        "const_ptr_cast", "const_raw_ptr_deref",
                        "const_raw_ptr_to_usize_cast", "const_refs_to_cell",
                        "const_refs_to_static", "const_trait_bound_opt_out",
                        "const_trait_impl", "const_try", "<const_ty>", "constant",
                        "constructor", "contract_build_check_ensures",
                        "contract_check_ensures", "contract_check_requires",
                        "contract_checks", "contracts", "contracts_ensures",
                        "contracts_internals", "contracts_requires", "convert",
                        "coprocessor", "copy", "copy_closures",
                        "copy_nonoverlapping", "copysignf16", "copysignf32",
                        "copysignf64", "copysignf128", "core", "core_panic",
                        "core_panic_2015_macro", "core_panic_macro", "coroutine",
                        "coroutine_clone", "coroutine_resume", "coroutine_return",
                        "coroutine_state", "coroutine_yield", "coroutines", "cos",
                        "count", "covariant_unsafe_cell", "coverage",
                        "coverage_attribute", "cr", "crate_in_paths", "crate_local",
                        "crate_name", "crate_type", "crate_visibility_modifier",
                        "crt-static", "csky", "csky_target_feature", "cstr_type",
                        "cstring_type", "ctlz", "ctlz_nonzero", "ctpop", "ctr",
                        "cttz", "cttz_nonzero", "custom_attribute",
                        "custom_code_classes_in_docs", "custom_derive",
                        "custom_inner_attributes", "custom_mir",
                        "custom_test_frameworks", "d32", "dead_code",
                        "dead_code_pub_in_binary", "dealloc", "debug",
                        "debug_assert_eq_macro", "debug_assert_macro",
                        "debug_assert_ne_macro", "debug_assertions",
                        "debug_struct_fields_finish", "debug_tuple_fields_finish",
                        "debugger_visualizer", "decl_macro", "declare_lint_pass",
                        "decorated", "default_alloc_error_handler",
                        "default_field_values", "default_fn",
                        "default_lib_allocator", "default_method_body_is_const",
                        "default_trait1", "default_trait2", "default_trait3",
                        "default_trait4", "default_type_parameter_fallback",
                        "default_type_params", "define_opaque", "deny",
                        "deprecated", "deprecated_safe", "deprecated_suggestion",
                        "deref", "deref_method", "deref_mut", "deref_patterns",
                        "deref_pure", "deref_target", "derive", "derive_const",
                        "118304", "derive_default_enum", "derive_from",
                        "derive_smart_pointer", "destruct",
                        "destructuring_assignment", "diagnostic",
                        "diagnostic_namespace", "diagnostic_on_const",
                        "diagnostic_on_move", "diagnostic_on_type_error",
                        "diagnostic_on_unknown", "diagnostic_on_unmatch_args",
                        "diagnostic_on_unmatched_args", "diagnostic_opaque",
                        "dialect", "direct", "direct_const_arg",
                        "discriminant_kind", "discriminant_type",
                        "discriminant_value", "disjoint_bitor", "dispatch_from_dyn",
                        "div", "div_assign", "diverging_block_default", "dl",
                        "do_not_recommend", "doc", "doc_alias", "doc_auto_cfg",
                        "doc_cfg", "doc_cfg_hide", "doc_keyword", "doc_masked",
                        "doc_notable_trait", "doc_primitive", "doc_spotlight",
                        "doctest", "dotdot_in_tuple_patterns",
                        "dotdoteq_in_patterns", "dreg", "dreg_low8", "dreg_low16",
                        "drop", "drop_glue", "drop_in_place", "drop_types_in_const",
                        "dropck_eyepatch", "dropck_parametricity", "<!dummy!>",
                        "dummy_cgu_name", "dylib", "dyn_compatible_for_dispatch",
                        "dyn_metadata", "dyn_star", "dyn_trait", "dynamic-no-pic",
                        "edition_panic", "effective_target_features", "effects",
                        "eh_personality", "eii", "eii_declaration", "eii_internals",
                        "eii_shared_macro", "element_ty", "elf", "", "{}", "[]",
                        "()", "enable", "end", "entry_nops", "env", "eq",
                        "ergonomic_clones", "ermsb_target_feature", "exact_div",
                        "except", "exception", "exception-handling",
                        "exclusive_range_pattern", "exhaustive_integer_patterns",
                        "exhaustive_patterns", "existential_type", "exists", "exp",
                        "exp2", "expand1", "expand2", "expect", "expected",
                        "explicit_extern_abis",
                        "explicit_generic_args_with_impl_trait",
                        "explicit_tail_calls", "export_name", "export_stable",
                        "export-symbols", "expr", "expr_2021",
                        "expr_fragment_specifier_2024",
                        "extended_key_value_attributes",
                        "extended_varargs_abi_support", "extendedl32r",
                        "extern_absolute_paths", "extern_crate_item_prelude",
                        "extern_crate_self", "extern_in_paths", "extern_item_impls",
                        "extern_prelude", "extern_system_varargs", "extern_types",
                        "extern_weak", "external", "external_doc", "f16", "f16_nan",
                        "f16c_target_feature", "f32", "f32_nan", "f64", "f64_nan",
                        "f128", "f128_nan", "fabs", "fadd_algebraic", "fadd_fast",
                        "fake_variadic", "fallback", "fdiv_algebraic", "fdiv_fast",
                        "feature", "fence", "🦀", "fetch_update", "ffi_const",
                        "ffi_pure", "ffi_returns_twice", "ffr", "field",
                        "field_base", "field_init_shorthand", "field_of",
                        "field_offset", "field_projections",
                        "field_representing_type",
                        "field_representing_type_actual_type_id",
                        "field_representing_type_name",
                        "field_representing_type_offset",
                        "field_representing_type_raw", "field_type", "fields",
                        "file", "final_associated_functions",
                        "float_to_int_unchecked", "floorf16", "floorf32",
                        "floorf64", "floorf128", "fma4_target_feature", "fmaf16",
                        "fmaf32", "fmaf64", "fmaf128", "fmt", "fmt_debug",
                        "fmul_algebraic", "fmul_fast", "fmuladdf16", "fmuladdf32",
                        "fmuladdf64", "fmuladdf128", "fn_align", "fn_body",
                        "fn_delegation", "fn_must_use", "fn_mut", "fn_once",
                        "fn_once_output", "fn_ptr_as_ptr", "fn_ptr_from_ptr",
                        "fn_ptr_trait", "fn_static", "forall", "forbid",
                        "force_target_feature", "forget", "format_args",
                        "format_args_capture", "format_args_nl", "format_argument",
                        "format_arguments", "format_macro", "format_placeholder",
                        "format_unsafe_arg", "fp", "fpregs", "framework", "freeze",
                        "freeze_impls", "freg", "frem_algebraic", "frem_fast",
                        "from", "from_desugaring", "from_iter", "from_output",
                        "from_residual", "from_size_align_unchecked",
                        "from_size_alignment_unchecked", "from_str",
                        "from_str_nonconst", "from_usize", "from_yeet",
                        "frontmatter", "fsub_algebraic", "fsub_fast", "full",
                        "fundamental", "fused_iterator", "future_output",
                        "future_trait", "fxsr", "gdb_script_file", "ge",
                        "gen_blocks", "gen_future", "generator_clone", "generators",
                        "generic_arg_infer", "generic_assert",
                        "generic_associated_types",
                        "generic_associated_types_extended", "generic_const_args",
                        "generic_const_exprs", "generic_const_items",
                        "generic_const_parameter_types", "generic_param_attrs",
                        "generic_pattern_types", "generics", "get_context",
                        "global_alloc_ty", "global_allocator", "global_asm",
                        "global_registration", "globs", "gpu-kernel",
                        "gpu_launch_sized_workgroup_mem", "gt", "guard",
                        "guard_patterns", "half_open_range_patterns",
                        "half_open_range_patterns_in_slices", "hash", "hexagon",
                        "hexagon_target_feature", "hidden", "hide",
                        "highpriinterrupts", "hint", "homogeneous_aggregate",
                        "html_favicon_url", "html_logo_url", "html_no_source",
                        "html_playground_url", "html_root_url", "hvx",
                        "hvx-length64b", "hvx-length128b", "hwaddress", "i8", "i16",
                        "i32", "i64", "i128", "i128_type", "ident", "if_let",
                        "if_let_guard", "if_let_rescope", "if_while_or_patterns",
                        "ignore", "immediate-abort", "impl_header_lifetime_elision",
                        "impl_lint_pass", "impl_restriction",
                        "impl_trait_in_assoc_type", "impl_trait_in_bindings",
                        "impl_trait_in_fn_trait_return", "impl_trait_projections",
                        "implied_by", "import", "import_name_type",
                        "import_shadowing", "import_trait_associated_functions",
                        "imported_main", "in_band_lifetimes", "include",
                        "include_bytes", "include_str", "inclusive_range_syntax",
                        "incomplete_features", "index", "index_mut",
                        "infer_outlives_requirements",
                        "infer_static_outlives_requirements",
                        "inherent_associated_types", "initial", "inlateout",
                        "inline", "inline_const", "inline_const_pat", "inout",
                        "inputs", "instruction_set", "instrument_fn", "integer",
                        "integer_max", "integer_min", "integral", "internal",
                        "internal_eq_trait_method_impls", "internal_features",
                        "interrupt", "into_async_iter_into_iter", "into_future",
                        "into_iter", "into_try_type", "intra_doc_pointers",
                        "intrinsics", "irrefutable_let_patterns", "is", "is_auto",
                        "is_splatted", "is_val_statically_known", "isa_attribute",
                        "isize", "issue", "issue_5723_bootstrap",
                        "issue_tracker_base_url", "item", "item_like_imports",
                        "iter", "iter_mut", "iterator", "iterator_collect_fn",
                        "kcfi", "kernel_address", "kernel_hwaddress",
                        "keylocker_x86", "keyword", "kind", "kreg", "kreg0",
                        "label", "label_break_value", "lahfsahf_target_feature",
                        "lang", "lang_items", "large_assignments", "largest_niche",
                        "last", "lasx", "late_bound_turbofishing", "lateout",
                        "lazy_normalization_consts", "lazy_type_alias", "le",
                        "legacy_receiver", "len", "let_chains", "let_else", "lhs",
                        "lib", "libc", "lifetime", "lifetime_capture_rules_2024",
                        "lifetimes", "line", "link", "link_arg_attribute",
                        "link_args", "link_cfg", "link-arg", "link_llvm_intrinsics",
                        "link_name", "link_ordinal", "link_section", "linkage",
                        "linker", "linker_info", "linker_messages", "linkonce",
                        "linkonce_odr", "lint_reasons", "literal", "little", "big",
                        "load", "loaded_from_disk", "local", "local_inner_macros",
                        "log", "log2", "log10", "log_syntax", "loongarch32",
                        "loongarch64", "loongarch_target_feature",
                        "loop_break_value", "loop_hints", "loop_match", "lr", "lsx",
                        "lt", "m68k", "m68k_target_feature", "mac16", "mach-o",
                        "macro_at_most_once_rep", "macro_attr",
                        "macro_attributes_in_derive_output", "macro_derive",
                        "macro_escape", "macro_export", "macro_guard_matcher",
                        "macro_lifetime_matcher", "macro_literal_matcher",
                        "macro_metavar_expr", "macro_metavar_expr_concat",
                        "macro_reexport", "macro_use", "macro_vis_matcher",
                        "macroless_generic_const_args", "macros_in_extern", "main",
                        "managed_boxes", "manually_drop", "map", "map_err",
                        "marker", "marker_trait_attr", "masked",
                        "match_beginning_vert", "match_default_bindings",
                        "maximum_number_nsz_f16", "maximum_number_nsz_f32",
                        "maximum_number_nsz_f64", "maximum_number_nsz_f128",
                        "maximumf16", "maximumf32", "maximumf64", "maximumf128",
                        "may_dangle", "may_unwind", "maybe_dangling",
                        "maybe_uninit", "maybe_uninit_uninit",
                        "maybe_uninit_zeroed", "mem", "mem_align_const",
                        "mem_discriminant", "mem_drop", "mem_forget",
                        "mem_size_const", "mem_swap", "mem_uninitialized",
                        "mem_variant_count", "mem_zeroed", "member_constraints",
                        "memory", "memtag", "message", "meta", "meta_sized",
                        "metadata_type", "mgca_type_const_syntax",
                        "min_adt_const_params", "min_const_fn",
                        "min_const_generics", "min_const_unsafe_fn",
                        "min_exhaustive_patterns", "min_generic_const_args",
                        "min_specialization", "min_type_alias_impl_trait",
                        "minimum_number_nsz_f16", "minimum_number_nsz_f32",
                        "minimum_number_nsz_f64", "minimum_number_nsz_f128",
                        "minimumf16", "minimumf32", "minimumf64", "minimumf128",
                        "mips", "mips32r6", "mips64", "mips64r6",
                        "mips_target_feature", "mir_assume", "mir_basic_block",
                        "mir_call", "mir_cast_ptr_to_ptr", "mir_cast_transmute",
                        "mir_cast_unsize", "mir_checked", "mir_debuginfo",
                        "mir_discriminant", "mir_drop", "mir_field", "mir_goto",
                        "mir_make_place", "mir_move", "mir_offset",
                        "mir_ptr_metadata", "mir_return", "mir_return_to",
                        "mir_set_discriminant", "mir_static", "mir_static_mut",
                        "mir_storage_dead", "mir_storage_live", "mir_tail_call",
                        "mir_unreachable", "mir_unwind_cleanup",
                        "mir_unwind_continue", "mir_unwind_resume",
                        "mir_unwind_terminate", "mir_unwind_terminate_reason",
                        "mir_unwind_unreachable", "mir_variant", "miri", "misc",
                        "miscsr", "mmx_reg", "modifiers", "module", "module_path",
                        "more_maybe_bounds", "more_qualified_paths",
                        "more_struct_aliases", "movbe_target_feature", "move_expr",
                        "move_ref_pattern", "move_size_limit",
                        "movrs_target_feature", "msa", "msp430", "mul",
                        "mul_assign", "mul_with_overflow",
                        "multiple_supertrait_upcastable", "must_not_suspend",
                        "must_use", "mut_preserve_binding_mode_2024", "mut_ref",
                        "mut_restriction", "mutable", "naked", "naked_asm",
                        "naked_functions", "naked_functions_rustic_abi",
                        "naked_functions_target_feature", "name",
                        "named_fn_trait_parameters", "names",
                        "native_link_modifiers", "native_link_modifiers_as_needed",
                        "native_link_modifiers_bundle",
                        "native_link_modifiers_verbatim",
                        "native_link_modifiers_whole_archive", "natvis_file", "ne",
                        "needs_allocator", "needs_drop", "needs_panic_runtime",
                        "neg", "negate_unsigned", "negative_bounds",
                        "negative_impls", "neon", "nested", "never",
                        "never_patterns", "never_type", "never_type_fallback",
                        "new", "new_binary", "new_debug", "new_debug_noop",
                        "new_display", "new_lower_exp", "new_lower_hex",
                        "new_octal", "new_pointer", "new_range", "new_unchecked",
                        "new_upper_exp", "new_upper_hex", "next", "niko", "nll",
                        "no", "no_builtins", "no_core", "no_coverage",
                        "no_crate_inject", "no_debug", "no_default_passes",
                        "no_implicit_prelude", "no_inline", "no_link", "no_main",
                        "no_mangle", "no_sanitize", "no_stack_check", "no_std",
                        "nomem", "non_ascii_idents", "non_exhaustive",
                        "non_exhaustive_omitted_patterns_lint",
                        "non_lifetime_binders", "non_modrs_mods", "non_null",
                        "nonblocking", "none", "nontemporal_store",
                        "noop_method_borrow", "noop_method_clone",
                        "noop_method_deref", "noprefix", "noreturn", "nostack",
                        "not", "notable_trait", "note", "null", "nvptx64",
                        "nvptx_target_feature", "object_safe_for_dispatch", "of",
                        "off", "offload", "offload_get_num_devices",
                        "offload_kernel", "offset", "offset_of", "offset_of_enum",
                        "offset_of_nested", "offset_of_slice", "ok_or_else",
                        "old_name", "omit_gdb_pretty_printer_section", "on",
                        "on_const", "on_move", "on_type_error", "on_unimplemented",
                        "on_unknown", "on_unmatched_args", "opaque", "<opaque>",
                        "ops", "opt_out_copy", "optimize", "optimize_attribute",
                        "optimized", "optin_builtin_traits", "option", "option_env",
                        "options", "or", "or_patterns", "ord_cmp_method", "other",
                        "out", "output", "overflow_checks",
                        "overlapping_marker_traits", "owned_box", "packed",
                        "packed_bundled_libs", "panic", "panic_2015", "panic_2021",
                        "panic_abort", "panic_bounds_check", "panic_cannot_unwind",
                        "panic_const_add_overflow", "panic_const_async_fn_resumed",
                        "panic_const_async_fn_resumed_drop",
                        "panic_const_async_fn_resumed_panic",
                        "panic_const_async_gen_fn_resumed",
                        "panic_const_async_gen_fn_resumed_drop",
                        "panic_const_async_gen_fn_resumed_panic",
                        "panic_const_coroutine_resumed",
                        "panic_const_coroutine_resumed_drop",
                        "panic_const_coroutine_resumed_panic",
                        "panic_const_div_by_zero", "panic_const_div_overflow",
                        "panic_const_gen_fn_none", "panic_const_gen_fn_none_drop",
                        "panic_const_gen_fn_none_panic", "panic_const_mul_overflow",
                        "panic_const_neg_overflow", "panic_const_rem_by_zero",
                        "panic_const_rem_overflow", "panic_const_shl_overflow",
                        "panic_const_shr_overflow", "panic_const_sub_overflow",
                        "panic_display", "panic_fmt", "panic_handler", "panic_impl",
                        "panic_implementation", "panic_in_cleanup", "panic_info",
                        "panic_invalid_enum_construction", "panic_location",
                        "panic_misaligned_pointer_dereference", "panic_nounwind",
                        "panic_null_pointer_dereference",
                        "panic_null_reference_constructed", "panic_runtime",
                        "panic_str_2015", "panic_unwind", "panicking",
                        "param_attrs", "parent_label", "partial_cmp", "partial_ord",
                        "passes", "pat", "pat_param", "patchable_function_entry",
                        "path", "pattern_complexity_limit", "pattern_parentheses",
                        "pattern_type", "pattern_type_range_trait", "pattern_types",
                        "phantom_data", "phase", "pic", "pie", "pin_drop",
                        "pin_ergonomics", "pin_v2", "platform_intrinsics", "plugin",
                        "plugin_registrar", "plugins", "pointee", "pointee_sized",
                        "pointee_trait", "pointer", "poll", "post-cleanup",
                        "post-lto", "postfix_match", "powerpc", "powerpc64",
                        "powerpc_target_feature", "powf16", "powf32", "powf64",
                        "powf128", "powif16", "powif32", "powif64", "powif128",
                        "pre-lto", "precise_capturing",
                        "precise_capturing_in_traits",
                        "precise_pointer_size_matching", "predicates",
                        "pref_align_of", "prefetch_read_data",
                        "prefetch_read_instruction", "prefetch_write_data",
                        "prefetch_write_instruction", "prefix_nops", "preg",
                        "prelude", "prelude_import", "preserves_flags",
                        "prfchw_target_feature", "prid", "primitive", "proc-macro",
                        "proc_macro", "proc_macro_attribute", "proc_macro_derive",
                        "proc_macro_expr", "proc_macro_gen", "proc_macro_hygiene",
                        "proc_macro_internals", "proc_macro_mod",
                        "proc_macro_non_items", "proc_macro_path_invoc",
                        "profiler_runtime", "ptr", "ptr_cast", "ptr_cast_const",
                        "ptr_cast_mut", "ptr_const_is_null", "ptr_copy",
                        "ptr_copy_nonoverlapping", "ptr_drop_in_place",
                        "ptr_drop_in_place_self", "ptr_from_ref",
                        "ptr_guaranteed_cmp", "ptr_is_null", "ptr_mask",
                        "ptr_metadata", "ptr_null", "ptr_null_mut",
                        "ptr_offset_from", "ptr_offset_from_unsigned", "ptr_read",
                        "ptr_read_unaligned", "ptr_replace", "ptr_swap",
                        "ptr_swap_nonoverlapping", "ptr_write", "ptr_write_bytes",
                        "ptr_write_unaligned", "ptr_write_volatile",
                        "pub_macro_rules", "pub_restricted", "public", "pure",
                        "pushpop_unsafe", "qreg", "qreg_low4", "qreg_low8",
                        "quad_precision_float", "question_mark", "quote",
                        "range_inclusive_new", "raw-dylib", "raw_dylib",
                        "raw_dylib_elf", "raw_eq", "raw_identifiers", "raw_ref_op",
                        "re_rebalance_coherence", "read_via_copy", "readonly",
                        "realloc", "realtime", "reason", "reborrow", "receiver",
                        "receiver_target", "recursion_limit",
                        "reexport_test_harness_main", "ref_pat_eat_one_layer_2024",
                        "ref_pat_eat_one_layer_2024_structural",
                        "ref_pat_everywhere", "ref_unwind_safe_trait", "reference",
                        "reflect", "reg", "reg16", "reg32", "reg64", "reg_abcd",
                        "reg_addr", "reg_byte", "reg_data", "reg_iw", "reg_nonzero",
                        "reg_pair", "reg_ptr", "reg_upper", "register_attr",
                        "register_attribute_tool", "register_lint_tool",
                        "register_tool", "relaxed_adts", "relaxed_struct_unsize",
                        "relocation_model", "rem", "rem_assign", "repr", "repr128",
                        "repr_align", "repr_align_enum", "repr_packed", "repr_simd",
                        "repr_transparent", "require", "reserve-x18", "residual",
                        "result", "result_ffi_guarantees", "return_address",
                        "return_position_impl_trait_in_trait",
                        "return_type_notation", "->", "riscv32", "riscv64",
                        "riscv_target_feature", "rlib", "ropi", "ropi-rwpi",
                        "rotate_left", "rotate_right", "round_ties_even_f16",
                        "round_ties_even_f32", "round_ties_even_f64",
                        "round_ties_even_f128", "roundf16", "roundf32", "roundf64",
                        "roundf128", "rtm_target_feature", "runtime", "rust",
                        "rust_2015", "rust_2018", "rust_2018_preview", "rust_2021",
                        "rust_2024", "rust_analyzer", "rust_begin_unwind",
                        "rust_cold_cc", "rust-call", "rust_eh_personality",
                        "rust_future", "rust_logo", "rust_out",
                        "rust_preserve_none_cc", "rust_tail_cc", "rustc",
                        "rustc_abi", "rustc_align", "rustc_align_static",
                        "rustc_allocator", "rustc_allocator_zeroed",
                        "rustc_allocator_zeroed_variant",
                        "rustc_allow_const_fn_unstable",
                        "rustc_allow_incoherent_impl",
                        "rustc_allow_lifetime_dependent_specialization",
                        "rustc_allowed_through_unstable_modules", "rustc_as_ptr",
                        "rustc_attrs", "rustc_autodiff", "rustc_builtin_macro",
                        "rustc_canonical_symbol", "rustc_capture_analysis",
                        "rustc_clean", "rustc_coherence_is_core",
                        "rustc_coinductive", "rustc_comptime", "rustc_confusables",
                        "rustc_const_stable", "rustc_const_stable_indirect",
                        "rustc_const_unstable", "rustc_conversion_suggestion",
                        "rustc_deallocator", "rustc_default_body_unstable",
                        "rustc_delayed_bug_from_inside_query",
                        "rustc_deny_explicit_impl", "rustc_deprecated_safe_2024",
                        "rustc_diagnostic_item", "rustc_diagnostic_macros",
                        "rustc_diagnostic_opaque", "rustc_do_not_const_check",
                        "rustc_doc_primitive", "rustc_driver", "rustc_dummy",
                        "rustc_dump_clauses", "rustc_dump_def_parents",
                        "rustc_dump_def_path", "rustc_dump_generics",
                        "rustc_dump_hidden_type_of_opaques",
                        "rustc_dump_inferred_outlives", "rustc_dump_item_bounds",
                        "rustc_dump_layout", "rustc_dump_object_lifetime_defaults",
                        "rustc_dump_symbol_name", "rustc_dump_user_args",
                        "rustc_dump_variances", "rustc_dump_variances_of_opaques",
                        "rustc_dump_vtable", "rustc_dyn_incompatible_trait",
                        "rustc_effective_visibility", "rustc_eii_foreign_item",
                        "rustc_evaluate_where_clauses", "rustc_expected_cgu_reuse",
                        "rustc_force_inline", "rustc_has_incoherent_inherent_impls",
                        "rustc_if_this_changed", "rustc_inherit_overflow_checks",
                        "rustc_insignificant_dtor", "rustc_intrinsic",
                        "rustc_intrinsic_const_stable_indirect",
                        "rustc_legacy_const_generics",
                        "rustc_lint_opt_deny_field_access", "rustc_lint_opt_ty",
                        "rustc_lint_query_instability",
                        "rustc_lint_untracked_query_information",
                        "rustc_macro_transparency", "rustc_main", "rustc_mir",
                        "rustc_must_implement_one_of",
                        "rustc_must_match_exhaustively",
                        "rustc_never_returns_null_ptr",
                        "rustc_no_implicit_autorefs", "rustc_no_implicit_bounds",
                        "rustc_no_mir_inline", "rustc_no_writable",
                        "rustc_non_const_trait_method",
                        "rustc_nonnull_optimization_guaranteed", "rustc_nounwind",
                        "rustc_objc_class", "rustc_objc_selector",
                        "rustc_offload_kernel", "rustc_on_unimplemented",
                        "rustc_panics_when_zero", "rustc_paren_sugar",
                        "rustc_partition_codegened", "rustc_partition_reused",
                        "rustc_pass_by_value",
                        "rustc_pass_indirectly_in_non_rustic_abis", "rustc_peek",
                        "rustc_peek_liveness", "rustc_peek_maybe_init",
                        "rustc_peek_maybe_uninit", "rustc_preserve_ub_checks",
                        "rustc_private", "rustc_proc_macro_decls",
                        "rustc_promotable", "rustc_pub_transparent",
                        "rustc_reallocator", "rustc_regions",
                        "rustc_scalable_vector",
                        "rustc_should_not_be_called_on_const_items",
                        "rustc_simd_monomorphize_lane_limit",
                        "rustc_skip_during_method_dispatch",
                        "rustc_specialization_trait", "rustc_splat",
                        "rustc_std_internal_symbol", "rustc_strict_coherence",
                        "rustc_test_marker", "rustc_then_this_would_need",
                        "rustc_trivial_field_reads", "rustc_unroll", "rustdoc",
                        "rustdoc_internals", "rustdoc_missing_doc_code_examples",
                        "rustfmt", "rvalue_static_promotion", "rvector", "rwpi",
                        "s32c1i", "s390x", "s390x_target_feature",
                        "s390x_target_feature_vector", "safestack", "safety",
                        "sanitize", "sanitizer_cfi_generalize_pointers",
                        "sanitizer_cfi_normalize_integers", "sanitizer_runtime",
                        "saturating_add", "saturating_sub", "sdylib",
                        "search_unbox", "section", "select_unpredictable",
                        "self_in_typedefs", "self_struct_ctor", "semiopaque",
                        "sgpr32", "sgpr64", "sgpr96", "sgpr128", "sgpr256",
                        "sgpr512", "sha2", "sha3", "sha512_sm_x86",
                        "shadow_call_stack", "shallow", "shl", "shl_assign",
                        "shorter_tail_lifetimes", "should_panic", "show", "shr",
                        "shr_assign", "signed", "simd", "simd_add", "simd_and",
                        "simd_arith_offset", "simd_as", "simd_bitmask",
                        "simd_bitreverse", "simd_bswap", "simd_carryless_mul",
                        "simd_cast", "simd_cast_ptr", "simd_ceil", "simd_ctlz",
                        "simd_ctpop", "simd_cttz", "simd_div", "simd_eq",
                        "simd_expose_provenance", "simd_extract",
                        "simd_extract_dyn", "simd_fabs", "simd_fcos", "simd_fexp",
                        "simd_fexp2", "simd_ffi", "simd_flog", "simd_flog2",
                        "simd_flog10", "simd_floor", "simd_fma", "simd_fsin",
                        "simd_fsqrt", "simd_funnel_shl", "simd_funnel_shr",
                        "simd_gather", "simd_ge", "simd_gt", "simd_insert",
                        "simd_insert_dyn", "simd_le", "simd_lt", "simd_masked_load",
                        "simd_masked_store", "simd_maximum_number_nsz",
                        "simd_minimum_number_nsz", "simd_mul", "simd_ne",
                        "simd_neg", "simd_or", "simd_reduce_add_ordered",
                        "simd_reduce_add_unordered", "simd_reduce_all",
                        "simd_reduce_and", "simd_reduce_any", "simd_reduce_max",
                        "simd_reduce_min", "simd_reduce_mul_ordered",
                        "simd_reduce_mul_unordered", "simd_reduce_or",
                        "simd_reduce_xor", "simd_relaxed_fma", "simd_rem",
                        "simd_round", "simd_round_ties_even", "simd_saturating_add",
                        "simd_saturating_sub", "simd_scatter", "simd_select",
                        "simd_select_bitmask", "simd_shl", "simd_shr",
                        "simd_shuffle", "simd_shuffle_const_generic", "simd_splat",
                        "simd_sub", "simd_trunc", "simd_with_exposed_provenance",
                        "simd_xor", "sin", "since", "size", "size_of",
                        "size_of_type_id", "size_of_val", "sized",
                        "sized_hierarchy", "slice", "slice_from_raw_parts",
                        "slice_from_raw_parts_mut", "slice_get_unchecked",
                        "slice_len_fn", "slice_patterns", "slicing_syntax",
                        "soft-float", "sparc", "sparc64", "sparc_target_feature",
                        "spe_acc", "specialization", "speed", "spirv", "splat",
                        "splatted_index", "spotlight", "sqrtf16", "sqrtf32",
                        "sqrtf64", "sqrtf128", "sreg", "sreg_low16", "sse", "sse2",
                        "sse4a_target_feature", "stable", "staged_api", "start",
                        "state", "static_align", "static_in_const",
                        "static_nobundle", "static_recursion", "staticlib", "std",
                        "std_lib_injection", "std_panic", "std_panic_2015_macro",
                        "std_panic_macro", "stmt", "stmt_expr_attributes",
                        "stop_after_dataflow", "store", "str", "str_from_utf8",
                        "str_from_utf8_mut", "str_from_utf8_unchecked",
                        "str_from_utf8_unchecked_mut", "str_inherent_from_utf8",
                        "str_inherent_from_utf8_mut",
                        "str_inherent_from_utf8_unchecked",
                        "str_inherent_from_utf8_unchecked_mut",
                        "strict_provenance_lints", "string_deref_patterns",
                        "stringify", "struct_field_attributes", "struct_inherit",
                        "struct_variant", "structural_match", "structural_peq",
                        "sub", "sub_assign", "sub_with_overflow", "suggestion",
                        "super_let", "supertrait_item_shadowing", "sve", "sve_cast",
                        "sve_tuple_create2", "sve_tuple_create3",
                        "sve_tuple_create4", "sve_tuple_get", "sve_tuple_set",
                        "sym", "sync", "synthetic", "t32", "target", "target_abi",
                        "target_arch", "target_endian", "target_env",
                        "target_family", "target_feature", "target_feature_11",
                        "target_feature_inline_always", "target_has_atomic",
                        "target_has_atomic_load_store",
                        "target_has_atomic_primitive_alignment",
                        "target_has_reliable_f16", "target_has_reliable_f16_math",
                        "target_has_reliable_f128", "target_has_reliable_f128_math",
                        "target_has_threads", "target_object_format", "target_os",
                        "target_pointer_width", "target_thread_local",
                        "target_vendor", "tbm_target_feature", "termination",
                        "termination_trait", "termination_trait_test", "test",
                        "test_2018_feature", "test_accepted_feature",
                        "test_binder_constraints", "test_case",
                        "test_incomplete_feature", "test_removed_feature",
                        "test_runner", "test_unstable_lint", "thread",
                        "thread_local", "threadptr", "three_way_compare", "thumb2",
                        "thumb-mode", "time", "tmm_reg", "to_owned_method",
                        "to_string", "to_vec", "tool_attributes", "tool_lints",
                        "trace_macros", "track_caller", "trait_alias", "trait_ty",
                        "trait_upcasting", "transmute", "transmute_generic_consts",
                        "transmute_opts", "transmute_trait", "transmute_unchecked",
                        "transparent", "transparent_enums", "transparent_unions",
                        "trivial_bounds", "trivial_clone", "truncf16", "truncf32",
                        "truncf64", "truncf128", "try_as_dyn", "try_blocks",
                        "try_blocks_heterogeneous", "try_capture", "try_from",
                        "try_into", "try_trait_v2", "try_trait_v2_residual",
                        "try_update", "tt", "tuple", "tuple_indexing",
                        "tuple_trait", "two_phase", "ty",
                        "type_alias_enum_variants", "type_alias_impl_trait",
                        "type_ascribe", "type_ascription",
                        "type_changing_struct_update", "type_id", "type_id_eq",
                        "type_id_field_representing_type", "type_id_fields",
                        "type_id_generics", "type_id_is_signed", "type_id_variants",
                        "type_id_vtable", "type_info", "type_info_generic",
                        "type_ir", "type_ir_infer_ctxt_like", "type_ir_inherent",
                        "type_ir_interner", "type_length_limit", "type_macros",
                        "type_name", "type_of", "type_privacy_lints",
                        "typed_swap_nonoverlapping", "u8", "u8_legacy_const_max",
                        "u8_legacy_const_min", "u8_legacy_fn_max_value",
                        "u8_legacy_fn_min_value", "u8_legacy_mod", "u16",
                        "u16_legacy_const_max", "u16_legacy_const_min",
                        "u16_legacy_fn_max_value", "u16_legacy_fn_min_value",
                        "u16_legacy_mod", "u32", "u32_legacy_const_max",
                        "u32_legacy_const_min", "u32_legacy_fn_max_value",
                        "u32_legacy_fn_min_value", "u32_legacy_mod", "u64",
                        "u64_legacy_const_max", "u64_legacy_const_min",
                        "u64_legacy_fn_max_value", "u64_legacy_fn_min_value",
                        "u64_legacy_mod", "u128", "u128_legacy_const_max",
                        "u128_legacy_const_min", "u128_legacy_fn_max_value",
                        "u128_legacy_fn_min_value", "u128_legacy_mod", "ub_checks",
                        "unaligned_volatile_load", "unaligned_volatile_store",
                        "unboxed_closures", "unchecked_add", "unchecked_div",
                        "unchecked_funnel_shl", "unchecked_funnel_shr",
                        "unchecked_mul", "unchecked_rem", "unchecked_shl",
                        "unchecked_shr", "unchecked_sub", "undecorated",
                        "underscore_const_names", "underscore_imports",
                        "underscore_lifetimes", "uniform_paths", "unimplemented",
                        "unit", "universal_impl_trait", "unix", "unlikely",
                        "unmarked_api", "unnamed_enum_variants", "unnamed_fields",
                        "unpin", "unqualified_local_imports", "unreachable",
                        "unreachable_2015", "unreachable_2015_macro",
                        "unreachable_2021", "unreachable_code",
                        "unreachable_display", "unreachable_macro",
                        "unrestricted_attribute_tokens", "unsafe_attributes",
                        "unsafe_binders", "unsafe_block_in_unsafe_fn",
                        "unsafe_cell", "unsafe_cell_raw_get", "unsafe_eii",
                        "unsafe_extern_blocks", "unsafe_fields",
                        "unsafe_no_drop_flag", "unsafe_pinned", "unsafe_unpin",
                        "unsafety", "unsize", "unsized_const_param_ty",
                        "unsized_const_params", "unsized_fn_params",
                        "unsized_locals", "unsized_tuple_coercion", "unstable",
                        "unstable_feature_bound",
                        "this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via `Cargo.toml` instead?",
                        "unstable_removed", "untagged_unions", "unused_imports",
                        "unwind", "unwind_attributes", "unwind_safe_trait",
                        "unwrap", "unwrap_binder", "unwrap_or", "update",
                        "use_cloned", "use_extern_macros", "use_nested_groups",
                        "used", "used_with_arg", "using", "usize",
                        "usize_legacy_const_max", "usize_legacy_const_min",
                        "usize_legacy_fn_max_value", "usize_legacy_fn_min_value",
                        "usize_legacy_mod", "v1", "v8plus", "v9", "va_arg",
                        "va_arg_safe", "va_copy", "va_end", "va_list", "val",
                        "validity", "value", "values", "var", "variadic",
                        "variant_count", "variant_name", "variant_non_exhaustive",
                        "variants", "vec", "vector", "verbatim", "version", "vfp2",
                        "vgpr16", "vgpr32", "vgpr64", "vgpr96", "vgpr128",
                        "vgpr160", "vgpr192", "vgpr224", "vgpr256", "vgpr288",
                        "vgpr320", "vgpr352", "vgpr384", "vgpr512", "vgpr1024",
                        "view_type", "view_types", "vis", "visible_private_types",
                        "volatile", "volatile_copy_memory",
                        "volatile_copy_nonoverlapping_memory", "volatile_load",
                        "volatile_set_memory", "volatile_store", "vreg",
                        "vreg_low16", "vreg_pair", "vsreg", "vsx", "vtable_align",
                        "vtable_size", "warn", "wasip2", "wasm", "wasm32", "wasm64",
                        "wasm_abi", "wasm_import_module", "wasm_target_feature",
                        "weak", "weak_odr", "where_clause_attrs", "while_let",
                        "whole-archive", "width", "windowed", "windows",
                        "windows_subsystem", "with_negative_coherence",
                        "wrap_binder", "wrapping_add", "wrapping_div",
                        "wrapping_mul", "wrapping_rem", "wrapping_rem_euclid",
                        "wrapping_sub", "wreg", "write_box_via_move", "write_bytes",
                        "write_fmt", "write_macro", "write_str", "write_via_move",
                        "writeln_macro", "x86", "x86_64", "x86_amx_intrinsics",
                        "x87_reg", "x87_target_feature", "xcoff", "xer", "xloop",
                        "xmm_reg", "xop_target_feature", "xreg", "xtensa",
                        "xtensa_target_feature", "yeet_desugar_details",
                        "yeet_expr", "yes", "yield_expr", "ymm_reg", "yreg", "zca",
                        "zfh", "zfhmin", "zmm_reg", "ztso", "0", "1", "2", "3", "4",
                        "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F", "G",
                        "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S",
                        "T", "U", "V", "W", "X", "Y", "Z", "a", "b", "c", "d", "e",
                        "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q",
                        "r", "s", "t", "u", "v", "w", "x", "y", "z",
                        "1.100.0-nightly"], extra_symbols)
    }
}symbols! {
23    // This list includes things that are definitely keywords (e.g. `if`), a
24    // few things that are definitely not keywords (e.g. `{{root}}`) and things
25    // where there is disagreement between people and/or documents (such as the
26    // Rust Reference) about whether it is a keyword (e.g. `_`).
27    //
28    // If you modify this list, adjust any relevant `Symbol::{is,can_be}_*`
29    // predicates and `used_keywords`. Also consider adding new keywords to the
30    // `ui/parser/raw/raw-idents.rs` test.
31    Keywords {
32        // Special reserved identifiers used internally for unnamed method
33        // parameters, crate root module, etc.
34        // Matching predicates: `is_special`/`is_reserved`
35        //
36        // tidy-alphabetical-start
37        DollarCrate:        "$crate",
38        PathRoot:           "{{root}}",
39        Underscore:         "_",
40        // tidy-alphabetical-end
41
42        // Keywords that are used in stable Rust.
43        // Matching predicates: `is_used_keyword_always`/`is_reserved`
44        // tidy-alphabetical-start
45        As:                 "as",
46        Break:              "break",
47        Const:              "const",
48        Continue:           "continue",
49        Crate:              "crate",
50        Else:               "else",
51        Enum:               "enum",
52        Extern:             "extern",
53        False:              "false",
54        Fn:                 "fn",
55        For:                "for",
56        If:                 "if",
57        Impl:               "impl",
58        In:                 "in",
59        Let:                "let",
60        Loop:               "loop",
61        Match:              "match",
62        Mod:                "mod",
63        Move:               "move",
64        Mut:                "mut",
65        Pub:                "pub",
66        Ref:                "ref",
67        Return:             "return",
68        SelfLower:          "self",
69        SelfUpper:          "Self",
70        Static:             "static",
71        Struct:             "struct",
72        Super:              "super",
73        Trait:              "trait",
74        True:               "true",
75        Type:               "type",
76        Unsafe:             "unsafe",
77        Use:                "use",
78        Where:              "where",
79        While:              "while",
80        // tidy-alphabetical-end
81
82        // Keywords that are used in unstable Rust or reserved for future use.
83        // Matching predicates: `is_unused_keyword_always`/`is_reserved`
84        // tidy-alphabetical-start
85        Abstract:           "abstract",
86        Become:             "become",
87        Box:                "box",
88        Do:                 "do",
89        Final:              "final",
90        Macro:              "macro",
91        Override:           "override",
92        Priv:               "priv",
93        Typeof:             "typeof",
94        Unsized:            "unsized",
95        Virtual:            "virtual",
96        Yield:              "yield",
97        // tidy-alphabetical-end
98
99        // Edition-specific keywords that are used in stable Rust.
100        // Matching predicates: `is_used_keyword_conditional`/`is_reserved` (if
101        // the edition suffices)
102        // tidy-alphabetical-start
103        Async:              "async", // >= 2018 Edition only
104        Await:              "await", // >= 2018 Edition only
105        Dyn:                "dyn", // >= 2018 Edition only
106        // tidy-alphabetical-end
107
108        // Edition-specific keywords that are used in unstable Rust or reserved for future use.
109        // Matching predicates: `is_unused_keyword_conditional`/`is_reserved` (if
110        // the edition suffices)
111        // tidy-alphabetical-start
112        Gen:                "gen", // >= 2024 Edition only
113        Try:                "try", // >= 2018 Edition only
114        // tidy-alphabetical-end
115
116        // "Lifetime keywords": regular keywords with a leading `'`.
117        // Matching predicates: none
118        // tidy-alphabetical-start
119        StaticLifetime:     "'static",
120        UnderscoreLifetime: "'_",
121        // tidy-alphabetical-end
122
123        // Weak keywords, have special meaning only in specific contexts.
124        // Matching predicates: `is_weak`
125        // tidy-alphabetical-start
126        Auto:               "auto",
127        Builtin:            "builtin",
128        Catch:              "catch",
129        ContractEnsures:    "contract_ensures",
130        ContractRequires:   "contract_requires",
131        Default:            "default",
132        MacroRules:         "macro_rules",
133        Pin:                "pin",
134        Raw:                "raw",
135        Reuse:              "reuse",
136        Safe:               "safe",
137        Union:              "union",
138        Yeet:               "yeet",
139        // tidy-alphabetical-end
140    }
141
142    // Pre-interned symbols that can be referred to with `rustc_span::sym::*`.
143    //
144    // The symbol is the stringified identifier unless otherwise specified, in
145    // which case the name should mention the non-identifier punctuation.
146    // E.g. `sym::proc_dash_macro` represents "proc-macro", and it shouldn't be
147    // called `sym::proc_macro` because then it's easy to mistakenly think it
148    // represents "proc_macro".
149    //
150    // As well as the symbols listed, there are symbols for the strings
151    // "0", "1", ..., "9", which are accessible via `sym::integer`.
152    //
153    // There is currently no checking that all symbols are used; that would be
154    // nice to have.
155    Symbols {
156        // tidy-alphabetical-start
157        Abi,
158        AcqRel,
159        Acquire,
160        Active,
161        ActiveOnly,
162        Alignment,
163        Arc,
164        ArcWeak,
165        Array,
166        AsMut,
167        AsRef,
168        AssertParamIsClone,
169        AssertParamIsCopy,
170        AssertParamIsEq,
171        AsyncGenFinished,
172        AsyncGenPending,
173        AsyncGenReady,
174        Atomic,
175        BTreeMap,
176        Bool,
177        Borrow,
178        BorrowMut,
179        Break,
180        BuildHasher,
181        CStr,
182        CallOnceFuture,
183        CallRefFuture,
184        Capture,
185        Cell,
186        Char,
187        Cleanup,
188        Client,
189        Clone,
190        CoercePointee,
191        CoercePointeeValidated,
192        CoerceShared,
193        CoerceUnsized,
194        Const,
195        ConstParamTy,
196        ConstParamTy_,
197        Context,
198        Continue,
199        ControlFlow,
200        Copy,
201        Cow,
202        Debug,
203        Default,
204        Deref,
205        DispatchFromDyn,
206        Display,
207        Dual,
208        DualOnly,
209        Dualv,
210        DualvOnly,
211        Duplicated,
212        DuplicatedOnly,
213        DynTrait,
214        Enum,
215        Eq,
216        Equal,
217        Err,
218        Expected,
219        ExternC,
220        ExternRust,
221        Float,
222        FmtArgumentsNew,
223        Fn,
224        FnMut,
225        FnOnce,
226        FnPtr,
227        Formatter,
228        Forward,
229        Found,
230        From,
231        FromIterator,
232        FromResidual,
233        GlobalAlloc,
234        Hash,
235        HashMap,
236        HashSet,
237        Hasher,
238        InCleanup,
239        IndexOutput,
240        Input,
241        Int,
242        Into,
243        IntoAsyncIterator,
244        IntoFuture,
245        IntoIterator,
246        IntoIteratorItem,
247        IoBufReader,
248        IrTyKind,
249        Item,
250        ItemContext,
251        Iterator,
252        IteratorItem,
253        IteratorMap,
254        Layout,
255        Lifetime,
256        LintPass,
257        LocalKey,
258        Mutex,
259        MutexGuard,
260        Named,
261        NonZero,
262        None,
263        Normal,
264        Ok,
265        Option,
266        Ord,
267        Ordering,
268        Other,
269        Output,
270        ParamSet,
271        PartialEq,
272        PartialOrd,
273        Pending,
274        PinDerefMutHelper,
275        PinMacroHelper,
276        Pointer,
277        Poll,
278        Range,
279        RangeCopy,
280        RangeFrom,
281        RangeFromCopy,
282        RangeFull,
283        RangeInclusive,
284        RangeInclusiveCopy,
285        RangeMax,
286        RangeMin,
287        RangeSub,
288        RangeTo,
289        RangeToInclusive,
290        RangeToInclusiveCopy,
291        Rc,
292        RcWeak,
293        Ready,
294        Reborrow,
295        RefCell,
296        Reference,
297        Relaxed,
298        Release,
299        Result,
300        ResumeTy,
301        Reverse,
302        Rust,
303        // Temporary name for the rust_embed hack introduced in #145108
304        RustEmbed,
305        RustaceansAreAwesome,
306        RwLock,
307        RwLockReadGuard,
308        RwLockWriteGuard,
309        SelfTy,
310        Send,
311        SeqCst,
312        Sized,
313        Slice,
314        SliceIndex,
315        Some,
316        Source,
317        SpanCtxt,
318        StdinLock,
319        Str,
320        String,
321        Struct,
322        StructuralPartialEq,
323        SymbolIntern,
324        Sync,
325        SyncUnsafeCell,
326        Target,
327        This,
328        TokenStream,
329        TrivialClone,
330        Try,
331        TryCaptureGeneric,
332        TryCapturePrintable,
333        TryFrom,
334        TryInto,
335        Tuple,
336        Ty,
337        TyCtxt,
338        TyKind,
339        Type,
340        Union,
341        Unresolved,
342        Unsize,
343        Vec,
344        Wrapper,
345        _DECLS,
346        __H,
347        __S,
348        __awaitee,
349        __try_var,
350        _t,
351        _task_context,
352        a32,
353        aarch64,
354        aarch64_target_feature,
355        aarch64_unstable_target_feature,
356        aarch64_ver_target_feature,
357        abi,
358        abi_amdgpu_kernel,
359        abi_avr_interrupt,
360        abi_c_cmse_nonsecure_call,
361        abi_cmse_nonsecure_call,
362        abi_custom,
363        abi_efiapi,
364        abi_gpu_kernel,
365        abi_msp430_interrupt,
366        abi_ptx,
367        abi_riscv_interrupt,
368        abi_swift,
369        abi_sysv64,
370        abi_thiscall,
371        abi_unadjusted,
372        abi_vectorcall,
373        abi_x86_interrupt,
374        abort,
375        add,
376        add_assign,
377        add_with_overflow,
378        address,
379        adt_const_params,
380        advanced_slice_patterns,
381        adx_target_feature,
382        aes,
383        aggregate_raw_ptr,
384        alias,
385        align,
386        align_of,
387        align_of_val,
388        alignment,
389        all,
390        alloc,
391        alloc_error_handler,
392        alloc_layout,
393        alloc_zeroed,
394        allocator,
395        allocator_api,
396        allocator_internals,
397        allow,
398        allow_fail,
399        allow_internal_unsafe,
400        allow_internal_unstable,
401        altivec,
402        alu32,
403        always,
404        amdgpu,
405        amdgpu_dispatch_ptr,
406        analysis,
407        and,
408        and_then,
409        anon,
410        anon_assoc,
411        anonymous_lifetime_in_impl_trait,
412        any,
413        apx_target_feature,
414        arbitrary_enum_discriminant,
415        arbitrary_self_types,
416        arbitrary_self_types_pointers,
417        areg,
418        args,
419        arith_offset,
420        arm,
421        arm64ec,
422        arm_a32: "arm::a32",
423        arm_t32: "arm::t32",
424        arm_target_feature,
425        array,
426        as_dash_needed: "as-needed",
427        as_ref,
428        asm,
429        asm_cfg,
430        asm_const,
431        asm_const_ptr,
432        asm_experimental_arch,
433        asm_experimental_reg,
434        asm_goto,
435        asm_goto_with_outputs,
436        asm_sym,
437        asm_unwind,
438        assert,
439        assert_eq,
440        assert_eq_macro,
441        assert_fields_are_eq,
442        assert_inhabited,
443        assert_macro,
444        assert_mem_uninitialized_valid,
445        assert_ne_macro,
446        assert_receiver_is_total_eq,
447        assert_zero_valid,
448        asserting,
449        associated_const_equality,
450        associated_consts,
451        associated_type_bounds,
452        associated_type_defaults,
453        associated_types,
454        assume,
455        assume_init,
456        asterisk: "*",
457        async_await,
458        async_call,
459        async_call_mut,
460        async_call_once,
461        async_closure,
462        async_drop,
463        async_drop_in_place,
464        async_fn,
465        async_fn_in_dyn_trait,
466        async_fn_in_trait,
467        async_fn_kind_helper,
468        async_fn_kind_upvars,
469        async_fn_mut,
470        async_fn_once,
471        async_fn_once_output,
472        async_fn_track_caller,
473        async_fn_traits,
474        async_for_loop,
475        async_gen_internals,
476        async_iterator,
477        async_iterator_poll_next,
478        async_trait_bounds,
479        atomic,
480        atomic_and,
481        atomic_cxchg,
482        atomic_cxchgweak,
483        atomic_fence,
484        atomic_load,
485        atomic_max,
486        atomic_min,
487        atomic_nand,
488        atomic_or,
489        atomic_singlethreadfence,
490        atomic_store,
491        atomic_umax,
492        atomic_umin,
493        atomic_xadd,
494        atomic_xchg,
495        atomic_xor,
496        atomic_xsub,
497        atomics,
498        att_syntax,
499        attr,
500        attr_literals,
501        attribute,
502        attributes,
503        audit_that,
504        augmented_assignments,
505        auto_cfg,
506        auto_traits,
507        autodiff,
508        autodiff_forward,
509        autodiff_reverse,
510        automatically_derived,
511        available_externally,
512        avr,
513        avr_target_feature,
514        avx,
515        avx10_target_feature,
516        avx512_target_feature,
517        avx512bw,
518        avx512f,
519        await_macro,
520        backchain,
521        backend_repr,
522        begin_panic,
523        bench,
524        bevy_ecs,
525        bikeshed,
526        bikeshed_guaranteed_no_drop,
527        bin,
528        bind_by_move_pattern_guards,
529        bindings_after_at,
530        bitand,
531        bitand_assign,
532        bitor,
533        bitor_assign,
534        bitreverse,
535        bits,
536        bitxor,
537        bitxor_assign,
538        black_box,
539        block,
540        blocking,
541        bool,
542        borrowck_graphviz_format,
543        borrowck_graphviz_postflow,
544        box_new,
545        box_patterns,
546        box_syntax,
547        boxed_slice,
548        bpf,
549        bpf_target_feature,
550        braced_empty_structs,
551        branch,
552        breakpoint,
553        breg,
554        bridge,
555        bswap,
556        built,
557        builtin_syntax,
558        bundle,
559        c_dash_variadic,
560        c_str_literals,
561        c_unwind,
562        c_variadic,
563        c_variadic_experimental_arch,
564        c_variadic_naked_functions,
565        c_void,
566        call,
567        call_mut,
568        call_once,
569        call_once_future,
570        call_ref_future,
571        caller,
572        caller_location,
573        capture_disjoint_fields,
574        carrying_mul_add,
575        carryless_mul,
576        catch_unwind,
577        cause,
578        cdylib,
579        ceilf16,
580        ceilf32,
581        ceilf64,
582        ceilf128,
583        cfg,
584        cfg_accessible,
585        cfg_attr,
586        cfg_attr_multi,
587        cfg_boolean_literals,
588        cfg_contract_checks,
589        cfg_doctest,
590        cfg_eval,
591        cfg_overflow_checks,
592        cfg_panic,
593        cfg_relocation_model,
594        cfg_sanitize,
595        cfg_sanitizer_cfi,
596        cfg_select,
597        cfg_target_abi,
598        cfg_target_compact,
599        cfg_target_feature,
600        cfg_target_has_atomic,
601        cfg_target_has_atomic_equal_alignment,
602        cfg_target_has_reliable_f16_f128,
603        cfg_target_has_threads,
604        cfg_target_object_format,
605        cfg_target_thread_local,
606        cfg_target_vendor,
607        cfg_ub_checks,
608        cfg_version,
609        cfi,
610        cfi_encoding,
611        char,
612        checked_type_aliases,
613        clflushopt_target_feature,
614        client,
615        clippy,
616        clobber_abi,
617        clone,
618        clone_closures,
619        clone_fn,
620        clone_from,
621        close_fn,
622        closure,
623        closure_lifetime_binder,
624        closure_to_fn_coercion,
625        closure_track_caller,
626        cmp,
627        cmp_ord_max,
628        cmp_ord_min,
629        cmp_partialeq_eq,
630        cmp_partialeq_ne,
631        cmp_partialord_cmp,
632        cmp_partialord_ge,
633        cmp_partialord_gt,
634        cmp_partialord_le,
635        cmp_partialord_lt,
636        cmpxchg16b_target_feature,
637        cmse_nonsecure_entry,
638        code,
639        coerce_pointee_validated,
640        coerce_shared,
641        coerce_shared_target,
642        coerce_unsized,
643        coff,
644        cold,
645        cold_path,
646        collapse_debuginfo,
647        column,
648        common,
649        compare_bytes,
650        compare_exchange,
651        compare_exchange_weak,
652        compile_error,
653        compiler,
654        compiler_builtins,
655        compiler_copy,
656        compiler_fence,
657        compiler_move,
658        complex,
659        concat,
660        concat_bytes,
661        conservative_impl_trait,
662        console,
663        const_allocate,
664        const_async_blocks,
665        const_block_items,
666        const_c_variadic,
667        const_closures,
668        const_compare_raw_pointers,
669        const_constructor,
670        const_continue,
671        const_deallocate,
672        const_destruct,
673        const_eval_limit,
674        const_eval_select,
675        const_evaluatable_checked,
676        const_extern_fn,
677        const_fn,
678        const_fn_floating_point_arithmetic,
679        const_fn_fn_ptr_basics,
680        const_fn_trait_bound,
681        const_fn_transmute,
682        const_fn_union,
683        const_fn_unsize,
684        const_for,
685        const_format_args,
686        const_generics,
687        const_generics_defaults,
688        const_if_match,
689        const_impl_trait,
690        const_in_array_repeat_expressions,
691        const_indexing,
692        const_let,
693        const_loop,
694        const_make_global,
695        const_mut_refs,
696        const_panic,
697        const_panic_fmt,
698        const_param_ty,
699        const_param_ty_unchecked,
700        const_precise_live_drops,
701        const_ptr_cast,
702        const_raw_ptr_deref,
703        const_raw_ptr_to_usize_cast,
704        const_refs_to_cell,
705        const_refs_to_static,
706        const_trait_bound_opt_out,
707        const_trait_impl,
708        const_try,
709        const_ty_placeholder: "<const_ty>",
710        constant,
711        constructor,
712        contract_build_check_ensures,
713        contract_check_ensures,
714        contract_check_requires,
715        contract_checks,
716        contracts,
717        contracts_ensures,
718        contracts_internals,
719        contracts_requires,
720        convert,
721        coprocessor,
722        copy,
723        copy_closures,
724        copy_nonoverlapping,
725        copysignf16,
726        copysignf32,
727        copysignf64,
728        copysignf128,
729        core,
730        core_panic,
731        core_panic_2015_macro,
732        core_panic_macro,
733        coroutine,
734        coroutine_clone,
735        coroutine_resume,
736        coroutine_return,
737        coroutine_state,
738        coroutine_yield,
739        coroutines,
740        cos,
741        count,
742        covariant_unsafe_cell,
743        coverage,
744        coverage_attribute,
745        cr,
746        crate_in_paths,
747        crate_local,
748        crate_name,
749        crate_type,
750        crate_visibility_modifier,
751        crt_dash_static: "crt-static",
752        csky,
753        csky_target_feature,
754        cstr_type,
755        cstring_type,
756        ctlz,
757        ctlz_nonzero,
758        ctpop,
759        ctr,
760        cttz,
761        cttz_nonzero,
762        custom_attribute,
763        custom_code_classes_in_docs,
764        custom_derive,
765        custom_inner_attributes,
766        custom_mir,
767        custom_test_frameworks,
768        d32,
769        dead_code,
770        dead_code_pub_in_binary,
771        dealloc,
772        debug,
773        debug_assert_eq_macro,
774        debug_assert_macro,
775        debug_assert_ne_macro,
776        debug_assertions,
777        debug_struct_fields_finish,
778        debug_tuple_fields_finish,
779        debugger_visualizer,
780        decl_macro,
781        declare_lint_pass,
782        decorated,
783        default_alloc_error_handler,
784        default_field_values,
785        default_fn,
786        default_lib_allocator,
787        default_method_body_is_const,
788        // --------------------------
789        // Lang items which are used only for experiments with auto traits with default bounds.
790        // These lang items are not actually defined in core/std. Experiment is a part of
791        // `MCP: Low level components for async drop`(https://github.com/rust-lang/compiler-team/issues/727)
792        default_trait1,
793        default_trait2,
794        default_trait3,
795        default_trait4,
796        // --------------------------
797        default_type_parameter_fallback,
798        default_type_params,
799        define_opaque,
800        deny,
801        deprecated,
802        deprecated_safe,
803        deprecated_suggestion,
804        deref,
805        deref_method,
806        deref_mut,
807        deref_patterns,
808        deref_pure,
809        deref_target,
810        derive,
811        derive_const,
812        derive_const_issue: "118304",
813        derive_default_enum,
814        derive_from,
815        derive_smart_pointer,
816        destruct,
817        destructuring_assignment,
818        diagnostic,
819        diagnostic_namespace,
820        diagnostic_on_const,
821        diagnostic_on_move,
822        diagnostic_on_type_error,
823        diagnostic_on_unknown,
824        diagnostic_on_unmatch_args,
825        diagnostic_on_unmatched_args,
826        diagnostic_opaque,
827        dialect,
828        direct,
829        direct_const_arg,
830        discriminant_kind,
831        discriminant_type,
832        discriminant_value,
833        disjoint_bitor,
834        dispatch_from_dyn,
835        div,
836        div_assign,
837        diverging_block_default,
838        dl,
839        do_not_recommend,
840        doc,
841        doc_alias,
842        doc_auto_cfg,
843        doc_cfg,
844        doc_cfg_hide,
845        doc_keyword,
846        doc_masked,
847        doc_notable_trait,
848        doc_primitive,
849        doc_spotlight,
850        doctest,
851        dotdot_in_tuple_patterns,
852        dotdoteq_in_patterns,
853        dreg,
854        dreg_low8,
855        dreg_low16,
856        drop,
857        drop_glue,
858        drop_in_place,
859        drop_types_in_const,
860        dropck_eyepatch,
861        dropck_parametricity,
862        dummy: "<!dummy!>", // use this instead of `sym::empty` for symbols that won't be used
863        dummy_cgu_name,
864        dylib,
865        dyn_compatible_for_dispatch,
866        dyn_metadata,
867        dyn_star,
868        dyn_trait,
869        dynamic_no_pic: "dynamic-no-pic",
870        edition_panic,
871        effective_target_features,
872        effects,
873        eh_personality,
874        eii,
875        eii_declaration,
876        eii_internals,
877        eii_shared_macro,
878        element_ty,
879        elf,
880        // Notes about `sym::empty`:
881        // - It should only be used when it genuinely means "empty symbol". Use
882        //   `Option<Symbol>` when "no symbol" is a possibility.
883        // - For dummy symbols that are never used and absolutely must be
884        //   present, it's better to use `sym::dummy` than `sym::empty`, because
885        //   it's clearer that it's intended as a dummy value, and more likely
886        //   to be detected if it accidentally does get used.
887        empty: "",
888        empty_braces: "{}",
889        empty_brackets: "[]",
890        empty_parens: "()",
891        enable,
892        end,
893        entry_nops,
894        env,
895        env_CFG_RELEASE: env!("CFG_RELEASE"),
896        eq,
897        ergonomic_clones,
898        ermsb_target_feature,
899        exact_div,
900        except,
901        exception,
902        exception_handling: "exception-handling",
903        exclusive_range_pattern,
904        exhaustive_integer_patterns,
905        exhaustive_patterns,
906        existential_type,
907        exists,
908        exp,
909        exp2,
910        expand1,
911        expand2,
912        expect,
913        expected,
914        explicit_extern_abis,
915        explicit_generic_args_with_impl_trait,
916        explicit_tail_calls,
917        export_name,
918        export_stable,
919        export_symbols: "export-symbols",
920        expr,
921        expr_2021,
922        expr_fragment_specifier_2024,
923        extended_key_value_attributes,
924        extended_varargs_abi_support,
925        extendedl32r,
926        extern_absolute_paths,
927        extern_crate_item_prelude,
928        extern_crate_self,
929        extern_in_paths,
930        extern_item_impls,
931        extern_prelude,
932        extern_system_varargs,
933        extern_types,
934        extern_weak,
935        external,
936        external_doc,
937        f16,
938        f16_nan,
939        f16c_target_feature,
940        f32,
941        f32_nan,
942        f64,
943        f64_nan,
944        f128,
945        f128_nan,
946        fabs,
947        fadd_algebraic,
948        fadd_fast,
949        fake_variadic,
950        fallback,
951        fdiv_algebraic,
952        fdiv_fast,
953        feature,
954        fence,
955        ferris: "🦀",
956        fetch_update,
957        ffi_const,
958        ffi_pure,
959        ffi_returns_twice,
960        ffr,
961        field,
962        field_base,
963        field_init_shorthand,
964        field_of,
965        field_offset,
966        field_projections,
967        field_representing_type,
968        field_representing_type_actual_type_id,
969        field_representing_type_name,
970        field_representing_type_offset,
971        field_representing_type_raw,
972        field_type,
973        fields,
974        file,
975        final_associated_functions,
976        float_to_int_unchecked,
977        floorf16,
978        floorf32,
979        floorf64,
980        floorf128,
981        fma4_target_feature,
982        fmaf16,
983        fmaf32,
984        fmaf64,
985        fmaf128,
986        fmt,
987        fmt_debug,
988        fmul_algebraic,
989        fmul_fast,
990        fmuladdf16,
991        fmuladdf32,
992        fmuladdf64,
993        fmuladdf128,
994        fn_align,
995        fn_body,
996        fn_delegation,
997        fn_must_use,
998        fn_mut,
999        fn_once,
1000        fn_once_output,
1001        fn_ptr_as_ptr,
1002        fn_ptr_from_ptr,
1003        fn_ptr_trait,
1004        fn_static,
1005        forall,
1006        forbid,
1007        force_target_feature,
1008        forget,
1009        format_args,
1010        format_args_capture,
1011        format_args_nl,
1012        format_argument,
1013        format_arguments,
1014        format_macro,
1015        format_placeholder,
1016        format_unsafe_arg,
1017        fp,
1018        fpregs,
1019        framework,
1020        freeze,
1021        freeze_impls,
1022        freg,
1023        frem_algebraic,
1024        frem_fast,
1025        from,
1026        from_desugaring,
1027        from_iter,
1028        from_output,
1029        from_residual,
1030        from_size_align_unchecked,
1031        from_size_alignment_unchecked,
1032        from_str,
1033        from_str_nonconst,
1034        from_usize,
1035        from_yeet,
1036        frontmatter,
1037        fsub_algebraic,
1038        fsub_fast,
1039        full,
1040        fundamental,
1041        fused_iterator,
1042        future_output,
1043        future_trait,
1044        fxsr,
1045        gdb_script_file,
1046        ge,
1047        gen_blocks,
1048        gen_future,
1049        generator_clone,
1050        generators,
1051        generic_arg_infer,
1052        generic_assert,
1053        generic_associated_types,
1054        generic_associated_types_extended,
1055        generic_const_args,
1056        generic_const_exprs,
1057        generic_const_items,
1058        generic_const_parameter_types,
1059        generic_param_attrs,
1060        generic_pattern_types,
1061        generics,
1062        get_context,
1063        global_alloc_ty,
1064        global_allocator,
1065        global_asm,
1066        global_registration,
1067        globs,
1068        gpu_kernel: "gpu-kernel",
1069        gpu_launch_sized_workgroup_mem,
1070        gt,
1071        guard,
1072        guard_patterns,
1073        half_open_range_patterns,
1074        half_open_range_patterns_in_slices,
1075        hash,
1076        hexagon,
1077        hexagon_target_feature,
1078        hidden,
1079        hide,
1080        highpriinterrupts,
1081        hint,
1082        homogeneous_aggregate,
1083        html_favicon_url,
1084        html_logo_url,
1085        html_no_source,
1086        html_playground_url,
1087        html_root_url,
1088        hvx,
1089        hvx_length64b: "hvx-length64b",
1090        hvx_length128b: "hvx-length128b",
1091        hwaddress,
1092        i8,
1093        i16,
1094        i32,
1095        i64,
1096        i128,
1097        i128_type,
1098        ident,
1099        if_let,
1100        if_let_guard,
1101        if_let_rescope,
1102        if_while_or_patterns,
1103        ignore,
1104        immediate_abort: "immediate-abort",
1105        impl_header_lifetime_elision,
1106        impl_lint_pass,
1107        impl_restriction,
1108        impl_trait_in_assoc_type,
1109        impl_trait_in_bindings,
1110        impl_trait_in_fn_trait_return,
1111        impl_trait_projections,
1112        implied_by,
1113        import,
1114        import_name_type,
1115        import_shadowing,
1116        import_trait_associated_functions,
1117        imported_main,
1118        in_band_lifetimes,
1119        include,
1120        include_bytes,
1121        include_str,
1122        inclusive_range_syntax,
1123        incomplete_features,
1124        index,
1125        index_mut,
1126        infer_outlives_requirements,
1127        infer_static_outlives_requirements,
1128        inherent_associated_types,
1129        initial,
1130        inlateout,
1131        inline,
1132        inline_const,
1133        inline_const_pat,
1134        inout,
1135        inputs,
1136        instruction_set,
1137        instrument_fn,
1138        integer_: "integer", // underscore to avoid clashing with the function `sym::integer` below
1139        integer_max,
1140        integer_min,
1141        integral,
1142        internal,
1143        internal_eq_trait_method_impls,
1144        internal_features,
1145        interrupt,
1146        into_async_iter_into_iter,
1147        into_future,
1148        into_iter,
1149        into_try_type,
1150        intra_doc_pointers,
1151        intrinsics,
1152        irrefutable_let_patterns,
1153        is,
1154        is_auto,
1155        is_splatted,
1156        is_val_statically_known,
1157        isa_attribute,
1158        isize,
1159        issue,
1160        issue_5723_bootstrap,
1161        issue_tracker_base_url,
1162        item,
1163        item_like_imports,
1164        iter,
1165        iter_mut,
1166        iterator,
1167        iterator_collect_fn,
1168        kcfi,
1169        kernel_address,
1170        kernel_hwaddress,
1171        keylocker_x86,
1172        keyword,
1173        kind,
1174        kreg,
1175        kreg0,
1176        label,
1177        label_break_value,
1178        lahfsahf_target_feature,
1179        lang,
1180        lang_items,
1181        large_assignments,
1182        largest_niche,
1183        last,
1184        lasx,
1185        late_bound_turbofishing,
1186        lateout,
1187        lazy_normalization_consts,
1188        lazy_type_alias,
1189        le,
1190        legacy_receiver,
1191        len,
1192        let_chains,
1193        let_else,
1194        lhs,
1195        lib,
1196        libc,
1197        lifetime,
1198        lifetime_capture_rules_2024,
1199        lifetimes,
1200        line,
1201        link,
1202        link_arg_attribute,
1203        link_args,
1204        link_cfg,
1205        link_dash_arg: "link-arg",
1206        link_llvm_intrinsics,
1207        link_name,
1208        link_ordinal,
1209        link_section,
1210        linkage,
1211        linker,
1212        linker_info,
1213        linker_messages,
1214        linkonce,
1215        linkonce_odr,
1216        lint_reasons,
1217        literal,
1218        little, big,
1219        load,
1220        loaded_from_disk,
1221        local,
1222        local_inner_macros,
1223        log,
1224        log2,
1225        log10,
1226        log_syntax,
1227        loongarch32,
1228        loongarch64,
1229        loongarch_target_feature,
1230        loop_break_value,
1231        loop_hints,
1232        loop_match,
1233        lr,
1234        lsx,
1235        lt,
1236        m68k,
1237        m68k_target_feature,
1238        mac16,
1239        macho: "mach-o",
1240        macro_at_most_once_rep,
1241        macro_attr,
1242        macro_attributes_in_derive_output,
1243        macro_derive,
1244        macro_escape,
1245        macro_export,
1246        macro_guard_matcher,
1247        macro_lifetime_matcher,
1248        macro_literal_matcher,
1249        macro_metavar_expr,
1250        macro_metavar_expr_concat,
1251        macro_reexport,
1252        macro_use,
1253        macro_vis_matcher,
1254        macroless_generic_const_args,
1255        macros_in_extern,
1256        main,
1257        managed_boxes,
1258        manually_drop,
1259        map,
1260        map_err,
1261        marker,
1262        marker_trait_attr,
1263        masked,
1264        match_beginning_vert,
1265        match_default_bindings,
1266        maximum_number_nsz_f16,
1267        maximum_number_nsz_f32,
1268        maximum_number_nsz_f64,
1269        maximum_number_nsz_f128,
1270        maximumf16,
1271        maximumf32,
1272        maximumf64,
1273        maximumf128,
1274        may_dangle,
1275        may_unwind,
1276        maybe_dangling,
1277        maybe_uninit,
1278        maybe_uninit_uninit,
1279        maybe_uninit_zeroed,
1280        mem,
1281        mem_align_const,
1282        mem_discriminant,
1283        mem_drop,
1284        mem_forget,
1285        mem_size_const,
1286        mem_swap,
1287        mem_uninitialized,
1288        mem_variant_count,
1289        mem_zeroed,
1290        member_constraints,
1291        memory,
1292        memtag,
1293        message,
1294        meta,
1295        meta_sized,
1296        metadata_type,
1297        mgca_type_const_syntax,
1298        min_adt_const_params,
1299        min_const_fn,
1300        min_const_generics,
1301        min_const_unsafe_fn,
1302        min_exhaustive_patterns,
1303        min_generic_const_args,
1304        min_specialization,
1305        min_type_alias_impl_trait,
1306        minimum_number_nsz_f16,
1307        minimum_number_nsz_f32,
1308        minimum_number_nsz_f64,
1309        minimum_number_nsz_f128,
1310        minimumf16,
1311        minimumf32,
1312        minimumf64,
1313        minimumf128,
1314        mips,
1315        mips32r6,
1316        mips64,
1317        mips64r6,
1318        mips_target_feature,
1319        mir_assume,
1320        mir_basic_block,
1321        mir_call,
1322        mir_cast_ptr_to_ptr,
1323        mir_cast_transmute,
1324        mir_cast_unsize,
1325        mir_checked,
1326        mir_debuginfo,
1327        mir_discriminant,
1328        mir_drop,
1329        mir_field,
1330        mir_goto,
1331        mir_make_place,
1332        mir_move,
1333        mir_offset,
1334        mir_ptr_metadata,
1335        mir_return,
1336        mir_return_to,
1337        mir_set_discriminant,
1338        mir_static,
1339        mir_static_mut,
1340        mir_storage_dead,
1341        mir_storage_live,
1342        mir_tail_call,
1343        mir_unreachable,
1344        mir_unwind_cleanup,
1345        mir_unwind_continue,
1346        mir_unwind_resume,
1347        mir_unwind_terminate,
1348        mir_unwind_terminate_reason,
1349        mir_unwind_unreachable,
1350        mir_variant,
1351        miri,
1352        misc,
1353        miscsr,
1354        mmx_reg,
1355        modifiers,
1356        module,
1357        module_path,
1358        more_maybe_bounds,
1359        more_qualified_paths,
1360        more_struct_aliases,
1361        movbe_target_feature,
1362        move_expr,
1363        move_ref_pattern,
1364        move_size_limit,
1365        movrs_target_feature,
1366        msa,
1367        msp430,
1368        mul,
1369        mul_assign,
1370        mul_with_overflow,
1371        multiple_supertrait_upcastable,
1372        must_not_suspend,
1373        must_use,
1374        mut_preserve_binding_mode_2024,
1375        mut_ref,
1376        mut_restriction,
1377        mutable,
1378        naked,
1379        naked_asm,
1380        naked_functions,
1381        naked_functions_rustic_abi,
1382        naked_functions_target_feature,
1383        name,
1384        named_fn_trait_parameters,
1385        names,
1386        native_link_modifiers,
1387        native_link_modifiers_as_needed,
1388        native_link_modifiers_bundle,
1389        native_link_modifiers_verbatim,
1390        native_link_modifiers_whole_archive,
1391        natvis_file,
1392        ne,
1393        needs_allocator,
1394        needs_drop,
1395        needs_panic_runtime,
1396        neg,
1397        negate_unsigned,
1398        negative_bounds,
1399        negative_impls,
1400        neon,
1401        nested,
1402        never,
1403        never_patterns,
1404        never_type,
1405        never_type_fallback,
1406        new,
1407        new_binary,
1408        new_debug,
1409        new_debug_noop,
1410        new_display,
1411        new_lower_exp,
1412        new_lower_hex,
1413        new_octal,
1414        new_pointer,
1415        new_range,
1416        new_unchecked,
1417        new_upper_exp,
1418        new_upper_hex,
1419        next,
1420        niko,
1421        nll,
1422        no,
1423        no_builtins,
1424        no_core,
1425        no_coverage,
1426        no_crate_inject,
1427        no_debug,
1428        no_default_passes,
1429        no_implicit_prelude,
1430        no_inline,
1431        no_link,
1432        no_main,
1433        no_mangle,
1434        no_sanitize,
1435        no_stack_check,
1436        no_std,
1437        nomem,
1438        non_ascii_idents,
1439        non_exhaustive,
1440        non_exhaustive_omitted_patterns_lint,
1441        non_lifetime_binders,
1442        non_modrs_mods,
1443        non_null,
1444        nonblocking,
1445        none,
1446        nontemporal_store,
1447        noop_method_borrow,
1448        noop_method_clone,
1449        noop_method_deref,
1450        noprefix,
1451        noreturn,
1452        nostack,
1453        not,
1454        notable_trait,
1455        note,
1456        null,
1457        nvptx64,
1458        nvptx_target_feature,
1459        object_safe_for_dispatch,
1460        of,
1461        off,
1462        offload,
1463        offload_get_num_devices,
1464        offload_kernel,
1465        offset,
1466        offset_of,
1467        offset_of_enum,
1468        offset_of_nested,
1469        offset_of_slice,
1470        ok_or_else,
1471        old_name,
1472        omit_gdb_pretty_printer_section,
1473        on,
1474        on_const,
1475        on_move,
1476        on_type_error,
1477        on_unimplemented,
1478        on_unknown,
1479        on_unmatched_args,
1480        opaque,
1481        opaque_module_name_placeholder: "<opaque>",
1482        ops,
1483        opt_out_copy,
1484        optimize,
1485        optimize_attribute,
1486        optimized,
1487        optin_builtin_traits,
1488        option,
1489        option_env,
1490        options,
1491        or,
1492        or_patterns,
1493        ord_cmp_method,
1494        other,
1495        out,
1496        output,
1497        overflow_checks,
1498        overlapping_marker_traits,
1499        owned_box,
1500        packed,
1501        packed_bundled_libs,
1502        panic,
1503        panic_2015,
1504        panic_2021,
1505        panic_abort,
1506        panic_bounds_check,
1507        panic_cannot_unwind,
1508        panic_const_add_overflow,
1509        panic_const_async_fn_resumed,
1510        panic_const_async_fn_resumed_drop,
1511        panic_const_async_fn_resumed_panic,
1512        panic_const_async_gen_fn_resumed,
1513        panic_const_async_gen_fn_resumed_drop,
1514        panic_const_async_gen_fn_resumed_panic,
1515        panic_const_coroutine_resumed,
1516        panic_const_coroutine_resumed_drop,
1517        panic_const_coroutine_resumed_panic,
1518        panic_const_div_by_zero,
1519        panic_const_div_overflow,
1520        panic_const_gen_fn_none,
1521        panic_const_gen_fn_none_drop,
1522        panic_const_gen_fn_none_panic,
1523        panic_const_mul_overflow,
1524        panic_const_neg_overflow,
1525        panic_const_rem_by_zero,
1526        panic_const_rem_overflow,
1527        panic_const_shl_overflow,
1528        panic_const_shr_overflow,
1529        panic_const_sub_overflow,
1530        panic_display,
1531        panic_fmt,
1532        panic_handler,
1533        panic_impl,
1534        panic_implementation,
1535        panic_in_cleanup,
1536        panic_info,
1537        panic_invalid_enum_construction,
1538        panic_location,
1539        panic_misaligned_pointer_dereference,
1540        panic_nounwind,
1541        panic_null_pointer_dereference,
1542        panic_null_reference_constructed,
1543        panic_runtime,
1544        panic_str_2015,
1545        panic_unwind,
1546        panicking,
1547        param_attrs,
1548        parent_label,
1549        partial_cmp,
1550        partial_ord,
1551        passes,
1552        pat,
1553        pat_param,
1554        patchable_function_entry,
1555        path,
1556        pattern_complexity_limit,
1557        pattern_parentheses,
1558        pattern_type,
1559        pattern_type_range_trait,
1560        pattern_types,
1561        phantom_data,
1562        phase,
1563        pic,
1564        pie,
1565        pin_drop,
1566        pin_ergonomics,
1567        pin_v2,
1568        platform_intrinsics,
1569        plugin,
1570        plugin_registrar,
1571        plugins,
1572        pointee,
1573        pointee_sized,
1574        pointee_trait,
1575        pointer,
1576        poll,
1577        post_cleanup: "post-cleanup",
1578        post_dash_lto: "post-lto",
1579        postfix_match,
1580        powerpc,
1581        powerpc64,
1582        powerpc_target_feature,
1583        powf16,
1584        powf32,
1585        powf64,
1586        powf128,
1587        powif16,
1588        powif32,
1589        powif64,
1590        powif128,
1591        pre_dash_lto: "pre-lto",
1592        precise_capturing,
1593        precise_capturing_in_traits,
1594        precise_pointer_size_matching,
1595        predicates,
1596        pref_align_of,
1597        prefetch_read_data,
1598        prefetch_read_instruction,
1599        prefetch_write_data,
1600        prefetch_write_instruction,
1601        prefix_nops,
1602        preg,
1603        prelude,
1604        prelude_import,
1605        preserves_flags,
1606        prfchw_target_feature,
1607        prid,
1608        primitive,
1609        proc_dash_macro: "proc-macro",
1610        proc_macro,
1611        proc_macro_attribute,
1612        proc_macro_derive,
1613        proc_macro_expr,
1614        proc_macro_gen,
1615        proc_macro_hygiene,
1616        proc_macro_internals,
1617        proc_macro_mod,
1618        proc_macro_non_items,
1619        proc_macro_path_invoc,
1620        profiler_runtime,
1621        ptr,
1622        ptr_cast,
1623        ptr_cast_const,
1624        ptr_cast_mut,
1625        ptr_const_is_null,
1626        ptr_copy,
1627        ptr_copy_nonoverlapping,
1628        ptr_drop_in_place,
1629        ptr_drop_in_place_self,
1630        ptr_from_ref,
1631        ptr_guaranteed_cmp,
1632        ptr_is_null,
1633        ptr_mask,
1634        ptr_metadata,
1635        ptr_null,
1636        ptr_null_mut,
1637        ptr_offset_from,
1638        ptr_offset_from_unsigned,
1639        ptr_read,
1640        ptr_read_unaligned,
1641        ptr_replace,
1642        ptr_swap,
1643        ptr_swap_nonoverlapping,
1644        ptr_write,
1645        ptr_write_bytes,
1646        ptr_write_unaligned,
1647        ptr_write_volatile,
1648        pub_macro_rules,
1649        pub_restricted,
1650        public,
1651        pure,
1652        pushpop_unsafe,
1653        qreg,
1654        qreg_low4,
1655        qreg_low8,
1656        quad_precision_float,
1657        question_mark,
1658        quote,
1659        range_inclusive_new,
1660        raw_dash_dylib: "raw-dylib",
1661        raw_dylib,
1662        raw_dylib_elf,
1663        raw_eq,
1664        raw_identifiers,
1665        raw_ref_op,
1666        re_rebalance_coherence,
1667        read_via_copy,
1668        readonly,
1669        realloc,
1670        realtime,
1671        reason,
1672        reborrow,
1673        receiver,
1674        receiver_target,
1675        recursion_limit,
1676        reexport_test_harness_main,
1677        ref_pat_eat_one_layer_2024,
1678        ref_pat_eat_one_layer_2024_structural,
1679        ref_pat_everywhere,
1680        ref_unwind_safe_trait,
1681        reference,
1682        reflect,
1683        reg,
1684        reg16,
1685        reg32,
1686        reg64,
1687        reg_abcd,
1688        reg_addr,
1689        reg_byte,
1690        reg_data,
1691        reg_iw,
1692        reg_nonzero,
1693        reg_pair,
1694        reg_ptr,
1695        reg_upper,
1696        register_attr,
1697        register_attribute_tool,
1698        register_lint_tool,
1699        register_tool,
1700        relaxed_adts,
1701        relaxed_struct_unsize,
1702        relocation_model,
1703        rem,
1704        rem_assign,
1705        repr,
1706        repr128,
1707        repr_align,
1708        repr_align_enum,
1709        repr_packed,
1710        repr_simd,
1711        repr_transparent,
1712        require,
1713        reserve_x18: "reserve-x18",
1714        residual,
1715        result,
1716        result_ffi_guarantees,
1717        return_address,
1718        return_position_impl_trait_in_trait,
1719        return_type_notation,
1720        right_arrow: "->",
1721        riscv32,
1722        riscv64,
1723        riscv_target_feature,
1724        rlib,
1725        ropi,
1726        ropi_rwpi: "ropi-rwpi",
1727        rotate_left,
1728        rotate_right,
1729        round_ties_even_f16,
1730        round_ties_even_f32,
1731        round_ties_even_f64,
1732        round_ties_even_f128,
1733        roundf16,
1734        roundf32,
1735        roundf64,
1736        roundf128,
1737        rtm_target_feature,
1738        runtime,
1739        rust,
1740        rust_2015,
1741        rust_2018,
1742        rust_2018_preview,
1743        rust_2021,
1744        rust_2024,
1745        rust_analyzer,
1746        rust_begin_unwind,
1747        rust_cold_cc,
1748        rust_dash_call: "rust-call",
1749        rust_eh_personality,
1750        rust_future,
1751        rust_logo,
1752        rust_out,
1753        rust_preserve_none_cc,
1754        rust_tail_cc,
1755        rustc,
1756        rustc_abi,
1757        // FIXME(#82232, #143834): temporary name to mitigate `#[align]` nameres ambiguity
1758        rustc_align,
1759        rustc_align_static,
1760        rustc_allocator,
1761        rustc_allocator_zeroed,
1762        rustc_allocator_zeroed_variant,
1763        rustc_allow_const_fn_unstable,
1764        rustc_allow_incoherent_impl,
1765        rustc_allow_lifetime_dependent_specialization,
1766        rustc_allowed_through_unstable_modules,
1767        rustc_as_ptr,
1768        rustc_attrs,
1769        rustc_autodiff,
1770        rustc_builtin_macro,
1771        rustc_canonical_symbol,
1772        rustc_capture_analysis,
1773        rustc_clean,
1774        rustc_coherence_is_core,
1775        rustc_coinductive,
1776        rustc_comptime,
1777        rustc_confusables,
1778        rustc_const_stable,
1779        rustc_const_stable_indirect,
1780        rustc_const_unstable,
1781        rustc_conversion_suggestion,
1782        rustc_deallocator,
1783        rustc_default_body_unstable,
1784        rustc_delayed_bug_from_inside_query,
1785        rustc_deny_explicit_impl,
1786        rustc_deprecated_safe_2024,
1787        rustc_diagnostic_item,
1788        rustc_diagnostic_macros,
1789        rustc_diagnostic_opaque,
1790        rustc_do_not_const_check,
1791        rustc_doc_primitive,
1792        rustc_driver,
1793        rustc_dummy,
1794        rustc_dump_clauses,
1795        rustc_dump_def_parents,
1796        rustc_dump_def_path,
1797        rustc_dump_generics,
1798        rustc_dump_hidden_type_of_opaques,
1799        rustc_dump_inferred_outlives,
1800        rustc_dump_item_bounds,
1801        rustc_dump_layout,
1802        rustc_dump_object_lifetime_defaults,
1803        rustc_dump_symbol_name,
1804        rustc_dump_user_args,
1805        rustc_dump_variances,
1806        rustc_dump_variances_of_opaques,
1807        rustc_dump_vtable,
1808        rustc_dyn_incompatible_trait,
1809        rustc_effective_visibility,
1810        rustc_eii_foreign_item,
1811        rustc_evaluate_where_clauses,
1812        rustc_expected_cgu_reuse,
1813        rustc_force_inline,
1814        rustc_has_incoherent_inherent_impls,
1815        rustc_if_this_changed,
1816        rustc_inherit_overflow_checks,
1817        rustc_insignificant_dtor,
1818        rustc_intrinsic,
1819        rustc_intrinsic_const_stable_indirect,
1820        rustc_legacy_const_generics,
1821        rustc_lint_opt_deny_field_access,
1822        rustc_lint_opt_ty,
1823        rustc_lint_query_instability,
1824        rustc_lint_untracked_query_information,
1825        rustc_macro_transparency,
1826        rustc_main,
1827        rustc_mir,
1828        rustc_must_implement_one_of,
1829        rustc_must_match_exhaustively,
1830        rustc_never_returns_null_ptr,
1831        rustc_no_implicit_autorefs,
1832        rustc_no_implicit_bounds,
1833        rustc_no_mir_inline,
1834        rustc_no_writable,
1835        rustc_non_const_trait_method,
1836        rustc_nonnull_optimization_guaranteed,
1837        rustc_nounwind,
1838        rustc_objc_class,
1839        rustc_objc_selector,
1840        rustc_offload_kernel,
1841        rustc_on_unimplemented,
1842        rustc_panics_when_zero,
1843        rustc_paren_sugar,
1844        rustc_partition_codegened,
1845        rustc_partition_reused,
1846        rustc_pass_by_value,
1847        rustc_pass_indirectly_in_non_rustic_abis,
1848        rustc_peek,
1849        rustc_peek_liveness,
1850        rustc_peek_maybe_init,
1851        rustc_peek_maybe_uninit,
1852        rustc_preserve_ub_checks,
1853        rustc_private,
1854        rustc_proc_macro_decls,
1855        rustc_promotable,
1856        rustc_pub_transparent,
1857        rustc_reallocator,
1858        rustc_regions,
1859        rustc_scalable_vector,
1860        rustc_should_not_be_called_on_const_items,
1861        rustc_simd_monomorphize_lane_limit,
1862        rustc_skip_during_method_dispatch,
1863        rustc_specialization_trait,
1864        rustc_splat,
1865        rustc_std_internal_symbol,
1866        rustc_strict_coherence,
1867        rustc_test_marker,
1868        rustc_then_this_would_need,
1869        rustc_trivial_field_reads,
1870        // FIXME(#159429): temporary rename to avoid `#[unroll]` nameres ambiguity
1871        rustc_unroll,
1872        rustdoc,
1873        rustdoc_internals,
1874        rustdoc_missing_doc_code_examples,
1875        rustfmt,
1876        rvalue_static_promotion,
1877        rvector,
1878        rwpi,
1879        s32c1i,
1880        s390x,
1881        s390x_target_feature,
1882        s390x_target_feature_vector,
1883        safestack,
1884        safety,
1885        sanitize,
1886        sanitizer_cfi_generalize_pointers,
1887        sanitizer_cfi_normalize_integers,
1888        sanitizer_runtime,
1889        saturating_add,
1890        saturating_sub,
1891        sdylib,
1892        search_unbox,
1893        section,
1894        select_unpredictable,
1895        self_in_typedefs,
1896        self_struct_ctor,
1897        semiopaque,
1898        sgpr32,
1899        sgpr64,
1900        sgpr96,
1901        sgpr128,
1902        sgpr256,
1903        sgpr512,
1904        sha2,
1905        sha3,
1906        sha512_sm_x86,
1907        shadow_call_stack,
1908        shallow,
1909        shl,
1910        shl_assign,
1911        shorter_tail_lifetimes,
1912        should_panic,
1913        show,
1914        shr,
1915        shr_assign,
1916        signed,
1917        simd,
1918        simd_add,
1919        simd_and,
1920        simd_arith_offset,
1921        simd_as,
1922        simd_bitmask,
1923        simd_bitreverse,
1924        simd_bswap,
1925        simd_carryless_mul,
1926        simd_cast,
1927        simd_cast_ptr,
1928        simd_ceil,
1929        simd_ctlz,
1930        simd_ctpop,
1931        simd_cttz,
1932        simd_div,
1933        simd_eq,
1934        simd_expose_provenance,
1935        simd_extract,
1936        simd_extract_dyn,
1937        simd_fabs,
1938        simd_fcos,
1939        simd_fexp,
1940        simd_fexp2,
1941        simd_ffi,
1942        simd_flog,
1943        simd_flog2,
1944        simd_flog10,
1945        simd_floor,
1946        simd_fma,
1947        simd_fsin,
1948        simd_fsqrt,
1949        simd_funnel_shl,
1950        simd_funnel_shr,
1951        simd_gather,
1952        simd_ge,
1953        simd_gt,
1954        simd_insert,
1955        simd_insert_dyn,
1956        simd_le,
1957        simd_lt,
1958        simd_masked_load,
1959        simd_masked_store,
1960        simd_maximum_number_nsz,
1961        simd_minimum_number_nsz,
1962        simd_mul,
1963        simd_ne,
1964        simd_neg,
1965        simd_or,
1966        simd_reduce_add_ordered,
1967        simd_reduce_add_unordered,
1968        simd_reduce_all,
1969        simd_reduce_and,
1970        simd_reduce_any,
1971        simd_reduce_max,
1972        simd_reduce_min,
1973        simd_reduce_mul_ordered,
1974        simd_reduce_mul_unordered,
1975        simd_reduce_or,
1976        simd_reduce_xor,
1977        simd_relaxed_fma,
1978        simd_rem,
1979        simd_round,
1980        simd_round_ties_even,
1981        simd_saturating_add,
1982        simd_saturating_sub,
1983        simd_scatter,
1984        simd_select,
1985        simd_select_bitmask,
1986        simd_shl,
1987        simd_shr,
1988        simd_shuffle,
1989        simd_shuffle_const_generic,
1990        simd_splat,
1991        simd_sub,
1992        simd_trunc,
1993        simd_with_exposed_provenance,
1994        simd_xor,
1995        sin,
1996        since,
1997        size,
1998        size_of,
1999        size_of_type_id,
2000        size_of_val,
2001        sized,
2002        sized_hierarchy,
2003        slice,
2004        slice_from_raw_parts,
2005        slice_from_raw_parts_mut,
2006        slice_get_unchecked,
2007        slice_len_fn,
2008        slice_patterns,
2009        slicing_syntax,
2010        soft_float: "soft-float",
2011        sparc,
2012        sparc64,
2013        sparc_target_feature,
2014        spe_acc,
2015        specialization,
2016        speed,
2017        spirv,
2018        splat,
2019        splatted_index,
2020        spotlight,
2021        sqrtf16,
2022        sqrtf32,
2023        sqrtf64,
2024        sqrtf128,
2025        sreg,
2026        sreg_low16,
2027        sse,
2028        sse2,
2029        sse4a_target_feature,
2030        stable,
2031        staged_api,
2032        start,
2033        state,
2034        static_align,
2035        static_in_const,
2036        static_nobundle,
2037        static_recursion,
2038        staticlib,
2039        std,
2040        std_lib_injection,
2041        std_panic,
2042        std_panic_2015_macro,
2043        std_panic_macro,
2044        stmt,
2045        stmt_expr_attributes,
2046        stop_after_dataflow,
2047        store,
2048        str,
2049        str_from_utf8,
2050        str_from_utf8_mut,
2051        str_from_utf8_unchecked,
2052        str_from_utf8_unchecked_mut,
2053        str_inherent_from_utf8,
2054        str_inherent_from_utf8_mut,
2055        str_inherent_from_utf8_unchecked,
2056        str_inherent_from_utf8_unchecked_mut,
2057        strict_provenance_lints,
2058        string_deref_patterns,
2059        stringify,
2060        struct_field_attributes,
2061        struct_inherit,
2062        struct_variant,
2063        structural_match,
2064        structural_peq,
2065        sub,
2066        sub_assign,
2067        sub_with_overflow,
2068        suggestion,
2069        super_let,
2070        supertrait_item_shadowing,
2071        sve,
2072        sve_cast,
2073        sve_tuple_create2,
2074        sve_tuple_create3,
2075        sve_tuple_create4,
2076        sve_tuple_get,
2077        sve_tuple_set,
2078        sym,
2079        sync,
2080        synthetic,
2081        t32,
2082        target,
2083        target_abi,
2084        target_arch,
2085        target_endian,
2086        target_env,
2087        target_family,
2088        target_feature,
2089        target_feature_11,
2090        target_feature_inline_always,
2091        target_has_atomic,
2092        target_has_atomic_load_store,
2093        target_has_atomic_primitive_alignment,
2094        target_has_reliable_f16,
2095        target_has_reliable_f16_math,
2096        target_has_reliable_f128,
2097        target_has_reliable_f128_math,
2098        target_has_threads,
2099        target_object_format,
2100        target_os,
2101        target_pointer_width,
2102        target_thread_local,
2103        target_vendor,
2104        tbm_target_feature,
2105        termination,
2106        termination_trait,
2107        termination_trait_test,
2108        test,
2109        test_2018_feature,
2110        test_accepted_feature,
2111        test_binder_constraints,
2112        test_case,
2113        test_incomplete_feature,
2114        test_removed_feature,
2115        test_runner,
2116        test_unstable_lint,
2117        thread,
2118        thread_local,
2119        threadptr,
2120        three_way_compare,
2121        thumb2,
2122        thumb_mode: "thumb-mode",
2123        time,
2124        tmm_reg,
2125        to_owned_method,
2126        to_string,
2127        to_vec,
2128        tool_attributes,
2129        tool_lints,
2130        trace_macros,
2131        track_caller,
2132        trait_alias,
2133        trait_ty,
2134        trait_upcasting,
2135        transmute,
2136        transmute_generic_consts,
2137        transmute_opts,
2138        transmute_trait,
2139        transmute_unchecked,
2140        transparent,
2141        transparent_enums,
2142        transparent_unions,
2143        trivial_bounds,
2144        trivial_clone,
2145        truncf16,
2146        truncf32,
2147        truncf64,
2148        truncf128,
2149        try_as_dyn,
2150        try_blocks,
2151        try_blocks_heterogeneous,
2152        try_capture,
2153        try_from,
2154        try_into,
2155        try_trait_v2,
2156        try_trait_v2_residual,
2157        try_update,
2158        tt,
2159        tuple,
2160        tuple_indexing,
2161        tuple_trait,
2162        two_phase,
2163        ty,
2164        type_alias_enum_variants,
2165        type_alias_impl_trait,
2166        type_ascribe,
2167        type_ascription,
2168        type_changing_struct_update,
2169        type_id,
2170        type_id_eq,
2171        type_id_field_representing_type,
2172        type_id_fields,
2173        type_id_generics,
2174        type_id_is_signed,
2175        type_id_variants,
2176        type_id_vtable,
2177        type_info,
2178        type_info_generic,
2179        type_ir,
2180        type_ir_infer_ctxt_like,
2181        type_ir_inherent,
2182        type_ir_interner,
2183        type_length_limit,
2184        type_macros,
2185        type_name,
2186        type_of,
2187        type_privacy_lints,
2188        typed_swap_nonoverlapping,
2189        u8,
2190        u8_legacy_const_max,
2191        u8_legacy_const_min,
2192        u8_legacy_fn_max_value,
2193        u8_legacy_fn_min_value,
2194        u8_legacy_mod,
2195        u16,
2196        u16_legacy_const_max,
2197        u16_legacy_const_min,
2198        u16_legacy_fn_max_value,
2199        u16_legacy_fn_min_value,
2200        u16_legacy_mod,
2201        u32,
2202        u32_legacy_const_max,
2203        u32_legacy_const_min,
2204        u32_legacy_fn_max_value,
2205        u32_legacy_fn_min_value,
2206        u32_legacy_mod,
2207        u64,
2208        u64_legacy_const_max,
2209        u64_legacy_const_min,
2210        u64_legacy_fn_max_value,
2211        u64_legacy_fn_min_value,
2212        u64_legacy_mod,
2213        u128,
2214        u128_legacy_const_max,
2215        u128_legacy_const_min,
2216        u128_legacy_fn_max_value,
2217        u128_legacy_fn_min_value,
2218        u128_legacy_mod,
2219        ub_checks,
2220        unaligned_volatile_load,
2221        unaligned_volatile_store,
2222        unboxed_closures,
2223        unchecked_add,
2224        unchecked_div,
2225        unchecked_funnel_shl,
2226        unchecked_funnel_shr,
2227        unchecked_mul,
2228        unchecked_rem,
2229        unchecked_shl,
2230        unchecked_shr,
2231        unchecked_sub,
2232        undecorated,
2233        underscore_const_names,
2234        underscore_imports,
2235        underscore_lifetimes,
2236        uniform_paths,
2237        unimplemented,
2238        unit,
2239        universal_impl_trait,
2240        unix,
2241        unlikely,
2242        unmarked_api,
2243        unnamed_enum_variants,
2244        unnamed_fields,
2245        unpin,
2246        unqualified_local_imports,
2247        unreachable,
2248        unreachable_2015,
2249        unreachable_2015_macro,
2250        unreachable_2021,
2251        unreachable_code,
2252        unreachable_display,
2253        unreachable_macro,
2254        unrestricted_attribute_tokens,
2255        unsafe_attributes,
2256        unsafe_binders,
2257        unsafe_block_in_unsafe_fn,
2258        unsafe_cell,
2259        unsafe_cell_raw_get,
2260        unsafe_eii,
2261        unsafe_extern_blocks,
2262        unsafe_fields,
2263        unsafe_no_drop_flag,
2264        unsafe_pinned,
2265        unsafe_unpin,
2266        unsafety,
2267        unsize,
2268        unsized_const_param_ty,
2269        unsized_const_params,
2270        unsized_fn_params,
2271        unsized_locals,
2272        unsized_tuple_coercion,
2273        unstable,
2274        unstable_feature_bound,
2275        unstable_location_reason_default: "this crate is being loaded from the sysroot, an \
2276                          unstable location; did you mean to load this crate \
2277                          from crates.io via `Cargo.toml` instead?",
2278        unstable_removed,
2279        untagged_unions,
2280        unused_imports,
2281        unwind,
2282        unwind_attributes,
2283        unwind_safe_trait,
2284        unwrap,
2285        unwrap_binder,
2286        unwrap_or,
2287        update,
2288        use_cloned,
2289        use_extern_macros,
2290        use_nested_groups,
2291        used,
2292        used_with_arg,
2293        using,
2294        usize,
2295        usize_legacy_const_max,
2296        usize_legacy_const_min,
2297        usize_legacy_fn_max_value,
2298        usize_legacy_fn_min_value,
2299        usize_legacy_mod,
2300        v1,
2301        v8plus,
2302        v9,
2303        va_arg,
2304        va_arg_safe,
2305        va_copy,
2306        va_end,
2307        va_list,
2308        val,
2309        validity,
2310        value,
2311        values,
2312        var,
2313        variadic,
2314        variant_count,
2315        variant_name,
2316        variant_non_exhaustive,
2317        variants,
2318        vec,
2319        vector,
2320        verbatim,
2321        version,
2322        vfp2,
2323        vgpr16,
2324        vgpr32,
2325        vgpr64,
2326        vgpr96,
2327        vgpr128,
2328        vgpr160,
2329        vgpr192,
2330        vgpr224,
2331        vgpr256,
2332        vgpr288,
2333        vgpr320,
2334        vgpr352,
2335        vgpr384,
2336        vgpr512,
2337        vgpr1024,
2338        view_type,
2339        view_types,
2340        vis,
2341        visible_private_types,
2342        volatile,
2343        volatile_copy_memory,
2344        volatile_copy_nonoverlapping_memory,
2345        volatile_load,
2346        volatile_set_memory,
2347        volatile_store,
2348        vreg,
2349        vreg_low16,
2350        vreg_pair,
2351        vsreg,
2352        vsx,
2353        vtable_align,
2354        vtable_size,
2355        warn,
2356        wasip2,
2357        wasm,
2358        wasm32,
2359        wasm64,
2360        wasm_abi,
2361        wasm_import_module,
2362        wasm_target_feature,
2363        weak,
2364        weak_odr,
2365        where_clause_attrs,
2366        while_let,
2367        whole_dash_archive: "whole-archive",
2368        width,
2369        windowed,
2370        windows,
2371        windows_subsystem,
2372        with_negative_coherence,
2373        wrap_binder,
2374        wrapping_add,
2375        wrapping_div,
2376        wrapping_mul,
2377        wrapping_rem,
2378        wrapping_rem_euclid,
2379        wrapping_sub,
2380        wreg,
2381        write_box_via_move,
2382        write_bytes,
2383        write_fmt,
2384        write_macro,
2385        write_str,
2386        write_via_move,
2387        writeln_macro,
2388        x86,
2389        x86_64,
2390        x86_amx_intrinsics,
2391        x87_reg,
2392        x87_target_feature,
2393        xcoff,
2394        xer,
2395        xloop,
2396        xmm_reg,
2397        xop_target_feature,
2398        xreg,
2399        xtensa,
2400        xtensa_target_feature,
2401        yeet_desugar_details,
2402        yeet_expr,
2403        yes,
2404        yield_expr,
2405        ymm_reg,
2406        yreg,
2407        zca,
2408        zfh,
2409        zfhmin,
2410        zmm_reg,
2411        ztso,
2412        // tidy-alphabetical-end
2413    }
2414}
2415
2416/// Symbols for crates that are part of the stable standard library: `std`, `core`, `alloc`, and
2417/// `proc_macro`.
2418pub const STDLIB_STABLE_CRATES: &[Symbol] = &[sym::std, sym::core, sym::alloc, sym::proc_macro];
2419
2420#[derive(#[automatically_derived]
impl ::core::marker::Copy for Ident { }Copy, #[automatically_derived]
#[doc(hidden)]
unsafe impl ::core::clone::TrivialClone for Ident { }
#[automatically_derived]
impl ::core::clone::Clone for Ident {
    #[inline]
    fn clone(&self) -> Ident {
        let _: ::core::clone::AssertParamIsClone<Symbol>;
        let _: ::core::clone::AssertParamIsClone<Span>;
        *self
    }
}Clone, #[automatically_derived]
impl ::core::cmp::Eq for Ident {
    #[inline]
    #[doc(hidden)]
    #[coverage(off)]
    fn assert_fields_are_eq(&self) {
        let _: ::core::cmp::AssertParamIsEq<Symbol>;
        let _: ::core::cmp::AssertParamIsEq<Span>;
    }
}Eq, const _: () =
    {
        impl ::rustc_data_structures::stable_hash::StableHash for Ident {
            #[inline]
            fn stable_hash<__Hcx: ::rustc_data_structures::stable_hash::StableHashCtxt>(&self,
                __hcx: &mut __Hcx,
                __hasher:
                    &mut ::rustc_data_structures::stable_hash::StableHasher) {
                match *self {
                    Ident { name: ref __binding_0, span: ref __binding_1 } => {
                        { __binding_0.stable_hash(__hcx, __hasher); }
                        { __binding_1.stable_hash(__hcx, __hasher); }
                    }
                }
            }
        }
    };StableHash, const _: () =
    {
        impl<__E: ::rustc_span::SpanEncoder> ::rustc_serialize::Encodable<__E>
            for Ident {
            fn encode(&self, __encoder: &mut __E) {
                let Ident { name: ref __binding_0, span: ref __binding_1 } =
                    *self;
                ::rustc_serialize::Encodable::<__E>::encode(__binding_0,
                    __encoder);
                ::rustc_serialize::Encodable::<__E>::encode(__binding_1,
                    __encoder);
            }
        }
    };Encodable, const _: () =
    {
        impl<__D: ::rustc_span::SpanDecoder> ::rustc_serialize::Decodable<__D>
            for Ident {
            fn decode(__decoder: &mut __D) -> Self {
                Ident {
                    name: ::rustc_serialize::Decodable::decode(__decoder),
                    span: ::rustc_serialize::Decodable::decode(__decoder),
                }
            }
        }
    };Decodable)]
2421pub struct Ident {
2422    /// `name` should never be the empty symbol. If you are considering that,
2423    /// you are probably conflating "empty identifier with "no identifier" and
2424    /// you should use `Option<Ident>` instead.
2425    /// Trying to construct an `Ident` with an empty name will trigger debug assertions.
2426    pub name: Symbol,
2427    pub span: Span,
2428}
2429
2430impl Ident {
2431    #[inline]
2432    /// Constructs a new identifier from a symbol and a span.
2433    pub fn new(name: Symbol, span: Span) -> Ident {
2434        if true {
    {
        match (&name, &sym::empty) {
            (left_val, right_val) => {
                if *left_val == *right_val {
                    let kind = ::core::panicking::AssertKind::Ne;
                    ::core::panicking::assert_failed(kind, &*left_val,
                        &*right_val, ::core::option::Option::None);
                }
            }
        }
    };
};debug_assert_ne!(name, sym::empty);
2435        Ident { name, span }
2436    }
2437
2438    /// Constructs a new identifier with a dummy span.
2439    #[inline]
2440    pub fn with_dummy_span(name: Symbol) -> Ident {
2441        Ident::new(name, DUMMY_SP)
2442    }
2443
2444    // For dummy identifiers that are never used and absolutely must be
2445    // present. Note that this does *not* use the empty symbol; `sym::dummy`
2446    // makes it clear that it's intended as a dummy value, and is more likely
2447    // to be detected if it accidentally does get used.
2448    #[inline]
2449    pub fn dummy() -> Ident {
2450        Ident::with_dummy_span(sym::dummy)
2451    }
2452
2453    /// Maps a string to an identifier with a dummy span.
2454    pub fn from_str(string: &str) -> Ident {
2455        Ident::with_dummy_span(Symbol::intern(string))
2456    }
2457
2458    /// Maps a string and a span to an identifier.
2459    pub fn from_str_and_span(string: &str, span: Span) -> Ident {
2460        Ident::new(Symbol::intern(string), span)
2461    }
2462
2463    /// Replaces `lo` and `hi` with those from `span`, but keep hygiene context.
2464    pub fn with_span_pos(self, span: Span) -> Ident {
2465        Ident::new(self.name, span.with_ctxt(self.span.ctxt()))
2466    }
2467
2468    /// Creates a new ident with the same span and name with leading quote removed, if any.
2469    /// Calling it on a `'` ident will return an empty ident, which triggers debug assertions.
2470    pub fn without_first_quote(self) -> Ident {
2471        self.as_str()
2472            .strip_prefix('\'')
2473            .map_or(self, |name| Ident::new(Symbol::intern(name), self.span))
2474    }
2475
2476    /// "Normalize" ident for use in comparisons using "item hygiene".
2477    /// Identifiers with same string value become same if they came from the same macro 2.0 macro
2478    /// (e.g., `macro` item, but not `macro_rules` item) and stay different if they came from
2479    /// different macro 2.0 macros.
2480    /// Technically, this operation strips all non-opaque marks from ident's syntactic context.
2481    pub fn normalize_to_macros_2_0(self) -> Ident {
2482        Ident::new(self.name, self.span.normalize_to_macros_2_0())
2483    }
2484
2485    /// "Normalize" ident for use in comparisons using "local variable hygiene".
2486    /// Identifiers with same string value become same if they came from the same non-transparent
2487    /// macro (e.g., `macro` or `macro_rules!` items) and stay different if they came from different
2488    /// non-transparent macros.
2489    /// Technically, this operation strips all transparent marks from ident's syntactic context.
2490    #[inline]
2491    pub fn normalize_to_macro_rules(self) -> Ident {
2492        Ident::new(self.name, self.span.normalize_to_macro_rules())
2493    }
2494
2495    /// Access the underlying string. This is a slowish operation because it
2496    /// requires locking the symbol interner.
2497    ///
2498    /// Note that the lifetime of the return value is a lie. See
2499    /// `Symbol::as_str()` for details.
2500    pub fn as_str(&self) -> &str {
2501        self.name.as_str()
2502    }
2503}
2504
2505impl PartialEq for Ident {
2506    #[inline]
2507    fn eq(&self, rhs: &Self) -> bool {
2508        self.name == rhs.name && self.span.eq_ctxt(rhs.span)
2509    }
2510}
2511
2512impl Hash for Ident {
2513    fn hash<H: Hasher>(&self, state: &mut H) {
2514        self.name.hash(state);
2515        self.span.ctxt().hash(state);
2516    }
2517}
2518
2519impl fmt::Debug for Ident {
2520    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
2521        fmt::Display::fmt(self, f)?;
2522        fmt::Debug::fmt(&self.span.ctxt(), f)
2523    }
2524}
2525
2526/// This implementation is supposed to be used in error messages, so it's expected to be identical
2527/// to printing the original identifier token written in source code (`token_to_string`),
2528/// except that AST identifiers don't keep the rawness flag, so we have to guess it.
2529impl fmt::Display for Ident {
2530    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
2531        fmt::Display::fmt(&IdentPrinter::new(self.name, self.guess_print_mode(), None), f)
2532    }
2533}
2534
2535pub enum IdentPrintMode {
2536    Normal,
2537    RawIdent,
2538    RawLifetime,
2539}
2540
2541/// The most general type to print identifiers.
2542///
2543/// AST pretty-printer is used as a fallback for turning AST structures into token streams for
2544/// proc macros. Additionally, proc macros may stringify their input and expect it survive the
2545/// stringification (especially true for proc macro derives written between Rust 1.15 and 1.30).
2546/// So we need to somehow pretty-print `$crate` in a way preserving at least some of its
2547/// hygiene data, most importantly name of the crate it refers to.
2548/// As a result we print `$crate` as `crate` if it refers to the local crate
2549/// and as `::other_crate_name` if it refers to some other crate.
2550/// Note, that this is only done if the ident token is printed from inside of AST pretty-printing,
2551/// but not otherwise. Pretty-printing is the only way for proc macros to discover token contents,
2552/// so we should not perform this lossy conversion if the top level call to the pretty-printer was
2553/// done for a token stream or a single token.
2554pub struct IdentPrinter {
2555    symbol: Symbol,
2556    mode: IdentPrintMode,
2557    /// Span used for retrieving the crate name to which `$crate` refers to,
2558    /// if this field is `None` then the `$crate` conversion doesn't happen.
2559    convert_dollar_crate: Option<Span>,
2560}
2561
2562impl IdentPrinter {
2563    /// The most general `IdentPrinter` constructor. Do not use this.
2564    pub fn new(
2565        symbol: Symbol,
2566        mode: IdentPrintMode,
2567        convert_dollar_crate: Option<Span>,
2568    ) -> IdentPrinter {
2569        IdentPrinter { symbol, mode, convert_dollar_crate }
2570    }
2571
2572    /// This implementation is supposed to be used when printing identifiers
2573    /// as a part of pretty-printing for larger AST pieces.
2574    /// Do not use this either.
2575    pub fn for_ast_ident(ident: Ident, mode: IdentPrintMode) -> IdentPrinter {
2576        IdentPrinter::new(ident.name, mode, Some(ident.span))
2577    }
2578}
2579
2580impl fmt::Display for IdentPrinter {
2581    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
2582        let s = match self.mode {
2583            IdentPrintMode::Normal
2584                if self.symbol == kw::DollarCrate
2585                    && let Some(span) = self.convert_dollar_crate =>
2586            {
2587                let converted = span.ctxt().dollar_crate_name();
2588                if !converted.is_path_segment_keyword() {
2589                    f.write_str("::")?;
2590                }
2591                converted
2592            }
2593            IdentPrintMode::Normal => self.symbol,
2594            IdentPrintMode::RawIdent => {
2595                f.write_str("r#")?;
2596                self.symbol
2597            }
2598            IdentPrintMode::RawLifetime => {
2599                f.write_str("'r#")?;
2600                let s = self
2601                    .symbol
2602                    .as_str()
2603                    .strip_prefix("'")
2604                    .expect("only lifetime idents should be passed with RawLifetime mode");
2605                Symbol::intern(s)
2606            }
2607        };
2608        s.fmt(f)
2609    }
2610}
2611
2612/// A newtype around `Ident` that calls [Ident::normalize_to_macro_rules] on
2613/// construction for "local variable hygiene" comparisons.
2614///
2615/// Use this type when you need to compare identifiers according to macro_rules hygiene.
2616/// This ensures compile-time safety and avoids manual normalization calls.
2617#[derive(#[automatically_derived]
impl ::core::marker::Copy for MacroRulesNormalizedIdent { }Copy, #[automatically_derived]
#[doc(hidden)]
unsafe impl ::core::clone::TrivialClone for MacroRulesNormalizedIdent { }
#[automatically_derived]
impl ::core::clone::Clone for MacroRulesNormalizedIdent {
    #[inline]
    fn clone(&self) -> MacroRulesNormalizedIdent {
        let _: ::core::clone::AssertParamIsClone<Ident>;
        *self
    }
}Clone, #[automatically_derived]
impl ::core::cmp::Eq for MacroRulesNormalizedIdent {
    #[inline]
    #[doc(hidden)]
    #[coverage(off)]
    fn assert_fields_are_eq(&self) {
        let _: ::core::cmp::AssertParamIsEq<Ident>;
    }
}Eq, #[automatically_derived]
impl ::core::marker::StructuralPartialEq for MacroRulesNormalizedIdent { }
#[automatically_derived]
impl ::core::cmp::PartialEq for MacroRulesNormalizedIdent {
    #[inline]
    fn eq(&self, other: &MacroRulesNormalizedIdent) -> bool {
        self.0 == other.0
    }
}PartialEq, #[automatically_derived]
impl ::core::hash::Hash for MacroRulesNormalizedIdent {
    #[inline]
    fn hash<__H: ::core::hash::Hasher>(&self, state: &mut __H) {
        ::core::hash::Hash::hash(&self.0, state)
    }
}Hash)]
2618pub struct MacroRulesNormalizedIdent(Ident);
2619
2620impl MacroRulesNormalizedIdent {
2621    #[inline]
2622    pub fn new(ident: Ident) -> Self {
2623        MacroRulesNormalizedIdent(ident.normalize_to_macro_rules())
2624    }
2625
2626    pub fn symbol(&self) -> Symbol {
2627        self.0.name
2628    }
2629
2630    pub fn ident(&self) -> Ident {
2631        self.0
2632    }
2633}
2634
2635impl fmt::Debug for MacroRulesNormalizedIdent {
2636    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
2637        fmt::Debug::fmt(&self.0, f)
2638    }
2639}
2640
2641impl fmt::Display for MacroRulesNormalizedIdent {
2642    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
2643        fmt::Display::fmt(&self.0, f)
2644    }
2645}
2646
2647/// An interned UTF-8 string.
2648///
2649/// Internally, a `Symbol` is implemented as an index, and all operations
2650/// (including hashing, equality, and ordering) operate on that index. The use
2651/// of `rustc_index::newtype_index!` means that `Option<Symbol>` only takes up 4 bytes,
2652/// because `rustc_index::newtype_index!` reserves the last 256 values for tagging purposes.
2653///
2654/// Note that `Symbol` cannot directly be a `rustc_index::newtype_index!` because it
2655/// implements `fmt::Debug`, `Encodable`, and `Decodable` in special ways.
2656#[derive(#[automatically_derived]
#[doc(hidden)]
unsafe impl ::core::clone::TrivialClone for Symbol { }
#[automatically_derived]
impl ::core::clone::Clone for Symbol {
    #[inline]
    fn clone(&self) -> Symbol {
        let _: ::core::clone::AssertParamIsClone<SymbolIndex>;
        *self
    }
}Clone, #[automatically_derived]
impl ::core::marker::Copy for Symbol { }Copy, #[automatically_derived]
impl ::core::marker::StructuralPartialEq for Symbol { }
#[automatically_derived]
impl ::core::cmp::PartialEq for Symbol {
    #[inline]
    fn eq(&self, other: &Symbol) -> bool { self.0 == other.0 }
}PartialEq, #[automatically_derived]
impl ::core::cmp::Eq for Symbol {
    #[inline]
    #[doc(hidden)]
    #[coverage(off)]
    fn assert_fields_are_eq(&self) {
        let _: ::core::cmp::AssertParamIsEq<SymbolIndex>;
    }
}Eq, #[automatically_derived]
impl ::core::cmp::PartialOrd for Symbol {
    #[inline]
    fn partial_cmp(&self, other: &Symbol)
        -> ::core::option::Option<::core::cmp::Ordering> {
        ::core::option::Option::Some(::core::cmp::Ord::cmp(self, other))
    }
}PartialOrd, #[automatically_derived]
impl ::core::cmp::Ord for Symbol {
    #[inline]
    fn cmp(&self, other: &Symbol) -> ::core::cmp::Ordering {
        ::core::cmp::Ord::cmp(&self.0, &other.0)
    }
}Ord, #[automatically_derived]
impl ::core::hash::Hash for Symbol {
    #[inline]
    fn hash<__H: ::core::hash::Hasher>(&self, state: &mut __H) {
        ::core::hash::Hash::hash(&self.0, state)
    }
}Hash)]
2657pub struct Symbol(SymbolIndex);
2658
2659// Used within both `Symbol` and `ByteSymbol`.
2660#[automatically_derived]
impl ::core::marker::Copy for SymbolIndex { }
impl SymbolIndex {
    #[doc = r" Maximum value the index can take, as a `u32`."]
    const MAX_AS_U32: u32 = 0xFFFF_FF00;
    #[doc = r" Maximum value the index can take."]
    const MAX: Self = Self::from_u32(0xFFFF_FF00);
    #[doc = r" Zero value of the index."]
    const ZERO: Self = Self::from_u32(0);
    #[doc = r" Creates a new index from a given `usize`."]
    #[doc = r""]
    #[doc = r" # Panics"]
    #[doc = r""]
    #[doc = r" Will panic if `value` exceeds `MAX`."]
    #[inline]
    const fn from_usize(value: usize) -> Self {
        if !(value <= (0xFFFF_FF00 as usize)) {
            ::core::panicking::panic("assertion failed: value <= (0xFFFF_FF00 as usize)")
        };
        unsafe { Self::from_u32_unchecked(value as u32) }
    }
    #[doc = r" Creates a new index from a given `u32`."]
    #[doc = r""]
    #[doc = r" # Panics"]
    #[doc = r""]
    #[doc = r" Will panic if `value` exceeds `MAX`."]
    #[inline]
    const fn from_u32(value: u32) -> Self {
        if !(value <= 0xFFFF_FF00) {
            ::core::panicking::panic("assertion failed: value <= 0xFFFF_FF00")
        };
        unsafe { Self::from_u32_unchecked(value) }
    }
    #[doc = r" Creates a new index from a given `u16`."]
    #[doc = r""]
    #[doc = r" # Panics"]
    #[doc = r""]
    #[doc = r" Will panic if `value` exceeds `MAX`."]
    #[inline]
    const fn from_u16(value: u16) -> Self {
        let value = value as u32;
        if !(value <= 0xFFFF_FF00) {
            ::core::panicking::panic("assertion failed: value <= 0xFFFF_FF00")
        };
        unsafe { Self::from_u32_unchecked(value) }
    }
    #[doc = r" Creates a new index from a given `u32`."]
    #[doc = r""]
    #[doc = r" # Safety"]
    #[doc = r""]
    #[doc =
    r" The provided value must be less than or equal to the maximum value for the newtype."]
    #[doc =
    r" Providing a value outside this range is undefined due to layout restrictions."]
    #[doc = r""]
    #[doc = r" Prefer using `from_u32`."]
    #[inline]
    const unsafe fn from_u32_unchecked(value: u32) -> Self {
        Self {
            private_use_as_methods_instead: unsafe {
                std::mem::transmute(value)
            },
        }
    }
    #[doc = r" Extracts the value of this index as a `usize`."]
    #[inline]
    const fn index(self) -> usize { self.as_usize() }
    #[doc = r" Extracts the value of this index as a `u32`."]
    #[inline]
    const fn as_u32(self) -> u32 {
        unsafe { std::mem::transmute(self.private_use_as_methods_instead) }
    }
    #[doc = r" Extracts the value of this index as a `usize`."]
    #[inline]
    const fn as_usize(self) -> usize { self.as_u32() as usize }
}
impl std::ops::Add<usize> for SymbolIndex {
    type Output = Self;
    #[inline]
    fn add(self, other: usize) -> Self {
        Self::from_usize(self.index() + other)
    }
}
impl std::ops::AddAssign<usize> for SymbolIndex {
    #[inline]
    fn add_assign(&mut self, other: usize) { *self = *self + other; }
}
impl rustc_index::Idx for SymbolIndex {
    #[inline]
    fn new(value: usize) -> Self { Self::from_usize(value) }
    #[inline]
    fn index(self) -> usize { self.as_usize() }
}
impl ::std::iter::Step for SymbolIndex {
    #[inline]
    fn steps_between(start: &Self, end: &Self) -> (usize, Option<usize>) {
        <usize as
                ::std::iter::Step>::steps_between(&Self::index(*start),
            &Self::index(*end))
    }
    #[inline]
    fn forward_checked(start: Self, u: usize) -> Option<Self> {
        Self::index(start).checked_add(u).map(Self::from_usize)
    }
    #[inline]
    fn backward_checked(start: Self, u: usize) -> Option<Self> {
        Self::index(start).checked_sub(u).map(Self::from_usize)
    }
    #[inline]
    fn forward_overflowing(start: Self, u: usize) -> (Self, bool) {
        let (s, o) = Self::index(start).overflowing_add(u);
        (Self::from_usize(s), o)
    }
    #[inline]
    fn backward_overflowing(start: Self, u: usize) -> (Self, bool) {
        let (s, o) = Self::index(start).overflowing_sub(u);
        (Self::from_usize(s), o)
    }
}
impl ::std::cmp::Ord for SymbolIndex {
    #[inline]
    fn cmp(&self, other: &Self) -> std::cmp::Ordering {
        self.as_u32().cmp(&other.as_u32())
    }
}
impl ::std::cmp::PartialOrd for SymbolIndex {
    #[inline]
    fn partial_cmp(&self, other: &Self) -> Option<std::cmp::Ordering> {
        Some(self.cmp(other))
    }
}
impl From<SymbolIndex> for u32 {
    #[inline]
    fn from(v: SymbolIndex) -> u32 { v.as_u32() }
}
impl From<SymbolIndex> for usize {
    #[inline]
    fn from(v: SymbolIndex) -> usize { v.as_usize() }
}
impl From<usize> for SymbolIndex {
    #[inline]
    fn from(value: usize) -> Self { Self::from_usize(value) }
}
impl From<u32> for SymbolIndex {
    #[inline]
    fn from(value: u32) -> Self { Self::from_u32(value) }
}
impl ::std::cmp::Eq for SymbolIndex {}
impl ::std::cmp::PartialEq for SymbolIndex {
    fn eq(&self, other: &Self) -> bool { self.as_u32().eq(&other.as_u32()) }
}
impl ::std::marker::StructuralPartialEq for SymbolIndex {}
impl ::std::hash::Hash for SymbolIndex {
    fn hash<H: ::std::hash::Hasher>(&self, state: &mut H) {
        self.as_u32().hash(state)
    }
}
impl ::std::fmt::Debug for SymbolIndex {
    fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        fmt.write_fmt(format_args!("{0}", self.as_u32()))
    }
}rustc_index::newtype_index! {
2661    #[orderable]
2662    struct SymbolIndex {}
2663}
2664
2665impl Symbol {
2666    /// Avoid this except for things like deserialization of previously
2667    /// serialized symbols, and testing. Use `intern` instead.
2668    pub const fn new(n: u32) -> Self {
2669        Symbol(SymbolIndex::from_u32(n))
2670    }
2671
2672    /// Maps a string to its interned representation.
2673    #[rustc_diagnostic_item = "SymbolIntern"]
2674    #[inline]
2675    pub fn intern(str: &str) -> Self {
2676        with_session_globals(|session_globals| session_globals.symbol_interner.intern_str(str))
2677    }
2678
2679    /// Access the underlying string. This is a slowish operation because it
2680    /// requires locking the symbol interner.
2681    ///
2682    /// Note that the lifetime of the return value is a lie. It's not the same
2683    /// as `&self`, but actually tied to the lifetime of the underlying
2684    /// interner. Interners are long-lived, and there are very few of them, and
2685    /// this function is typically used for short-lived things, so in practice
2686    /// it works out ok.
2687    #[inline]
2688    pub fn as_str(&self) -> &str {
2689        with_session_globals(|session_globals| unsafe {
2690            std::mem::transmute::<&str, &str>(session_globals.symbol_interner.get_str(*self))
2691        })
2692    }
2693
2694    pub fn as_u32(self) -> u32 {
2695        self.0.as_u32()
2696    }
2697
2698    pub fn is_empty(self) -> bool {
2699        self == sym::empty
2700    }
2701
2702    /// This method is supposed to be used in error messages, so it's expected to be
2703    /// identical to printing the original identifier token written in source code
2704    /// (`token_to_string`, `Ident::to_string`), except that symbols don't keep the rawness flag
2705    /// or edition, so we have to guess the rawness using the global edition.
2706    pub fn to_ident_string(self) -> String {
2707        // Avoid creating an empty identifier, because that asserts in debug builds.
2708        if self == sym::empty { String::new() } else { Ident::with_dummy_span(self).to_string() }
2709    }
2710
2711    /// Checks if `self` is similar to any symbol in `candidates`.
2712    ///
2713    /// The returned boolean represents whether the candidate is the same symbol with a different
2714    /// casing.
2715    ///
2716    /// All the candidates are assumed to be lowercase.
2717    pub fn find_similar(
2718        self,
2719        candidates: &[Symbol],
2720    ) -> Option<(Symbol, /* is incorrect case */ bool)> {
2721        let lowercase = self.as_str().to_lowercase();
2722        let lowercase_sym = Symbol::intern(&lowercase);
2723        if candidates.contains(&lowercase_sym) {
2724            Some((lowercase_sym, true))
2725        } else if let Some(similar_sym) = find_best_match_for_name(candidates, self, None) {
2726            Some((similar_sym, false))
2727        } else {
2728            None
2729        }
2730    }
2731}
2732
2733impl fmt::Debug for Symbol {
2734    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
2735        fmt::Debug::fmt(self.as_str(), f)
2736    }
2737}
2738
2739impl fmt::Display for Symbol {
2740    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
2741        fmt::Display::fmt(self.as_str(), f)
2742    }
2743}
2744
2745impl StableHash for Symbol {
2746    #[inline]
2747    fn stable_hash<Hcx: StableHashCtxt>(&self, hcx: &mut Hcx, hasher: &mut StableHasher) {
2748        self.as_str().stable_hash(hcx, hasher);
2749    }
2750}
2751
2752impl StableCompare for Symbol {
2753    const CAN_USE_UNSTABLE_SORT: bool = true;
2754
2755    fn stable_cmp(&self, other: &Self) -> std::cmp::Ordering {
2756        self.as_str().cmp(other.as_str())
2757    }
2758}
2759
2760/// Like `Symbol`, but for byte strings. `ByteSymbol` is used less widely, so
2761/// it has fewer operations defined than `Symbol`.
2762#[derive(#[automatically_derived]
#[doc(hidden)]
unsafe impl ::core::clone::TrivialClone for ByteSymbol { }
#[automatically_derived]
impl ::core::clone::Clone for ByteSymbol {
    #[inline]
    fn clone(&self) -> ByteSymbol {
        let _: ::core::clone::AssertParamIsClone<SymbolIndex>;
        *self
    }
}Clone, #[automatically_derived]
impl ::core::marker::Copy for ByteSymbol { }Copy, #[automatically_derived]
impl ::core::marker::StructuralPartialEq for ByteSymbol { }
#[automatically_derived]
impl ::core::cmp::PartialEq for ByteSymbol {
    #[inline]
    fn eq(&self, other: &ByteSymbol) -> bool { self.0 == other.0 }
}PartialEq, #[automatically_derived]
impl ::core::cmp::Eq for ByteSymbol {
    #[inline]
    #[doc(hidden)]
    #[coverage(off)]
    fn assert_fields_are_eq(&self) {
        let _: ::core::cmp::AssertParamIsEq<SymbolIndex>;
    }
}Eq, #[automatically_derived]
impl ::core::cmp::PartialOrd for ByteSymbol {
    #[inline]
    fn partial_cmp(&self, other: &ByteSymbol)
        -> ::core::option::Option<::core::cmp::Ordering> {
        ::core::option::Option::Some(::core::cmp::Ord::cmp(self, other))
    }
}PartialOrd, #[automatically_derived]
impl ::core::cmp::Ord for ByteSymbol {
    #[inline]
    fn cmp(&self, other: &ByteSymbol) -> ::core::cmp::Ordering {
        ::core::cmp::Ord::cmp(&self.0, &other.0)
    }
}Ord, #[automatically_derived]
impl ::core::hash::Hash for ByteSymbol {
    #[inline]
    fn hash<__H: ::core::hash::Hasher>(&self, state: &mut __H) {
        ::core::hash::Hash::hash(&self.0, state)
    }
}Hash)]
2763pub struct ByteSymbol(SymbolIndex);
2764
2765impl ByteSymbol {
2766    /// Avoid this except for things like deserialization of previously
2767    /// serialized symbols, and testing. Use `intern` instead.
2768    pub const fn new(n: u32) -> Self {
2769        ByteSymbol(SymbolIndex::from_u32(n))
2770    }
2771
2772    /// Maps a string to its interned representation.
2773    pub fn intern(byte_str: &[u8]) -> Self {
2774        with_session_globals(|session_globals| {
2775            session_globals.symbol_interner.intern_byte_str(byte_str)
2776        })
2777    }
2778
2779    /// Like `Symbol::as_str`.
2780    pub fn as_byte_str(&self) -> &[u8] {
2781        with_session_globals(|session_globals| unsafe {
2782            std::mem::transmute::<&[u8], &[u8]>(session_globals.symbol_interner.get_byte_str(*self))
2783        })
2784    }
2785
2786    pub fn as_u32(self) -> u32 {
2787        self.0.as_u32()
2788    }
2789}
2790
2791impl fmt::Debug for ByteSymbol {
2792    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
2793        fmt::Debug::fmt(self.as_byte_str(), f)
2794    }
2795}
2796
2797impl StableHash for ByteSymbol {
2798    #[inline]
2799    fn stable_hash<Hcx: StableHashCtxt>(&self, hcx: &mut Hcx, hasher: &mut StableHasher) {
2800        self.as_byte_str().stable_hash(hcx, hasher);
2801    }
2802}
2803
2804// Interner used for both `Symbol`s and `ByteSymbol`s. If a string and a byte
2805// string with identical contents (e.g. "foo" and b"foo") are both interned,
2806// only one copy will be stored and the resulting `Symbol` and `ByteSymbol`
2807// will have the same index.
2808pub(crate) struct Interner(Lock<InternerInner>);
2809
2810// The `&'static [u8]`s in this type actually point into the arena.
2811//
2812// This type is private to prevent accidentally constructing more than one
2813// `Interner` on the same thread, which makes it easy to mix up `Symbol`s
2814// between `Interner`s.
2815struct InternerInner {
2816    arena: DroplessArena,
2817    indices: HashTable<(&'static [u8], u32)>,
2818    byte_strs: Vec<&'static [u8]>,
2819}
2820
2821impl Interner {
2822    // These arguments are `&str`, but because of the sharing, we are
2823    // effectively pre-interning all these strings for both `Symbol` and
2824    // `ByteSymbol`.
2825    fn prefill(init: &[&'static str], extra: &[&'static str]) -> Self {
2826        let values = init.iter().copied().chain(extra.iter().copied()).map(|str| str.as_bytes());
2827        let (size_hint, _) = values.size_hint();
2828        let mut conflicting_values: Vec<&[u8]> = Vec::new();
2829
2830        let mut indices: HashTable<(&'static [u8], u32)> = HashTable::with_capacity(size_hint);
2831        let hasher = FxBuildHasher::default();
2832
2833        let mut byte_strs: Vec<&'static [u8]> = Vec::with_capacity(size_hint);
2834
2835        for v in values {
2836            match indices.entry(hasher.hash_one(&v), |&(s, _)| s == v, |&(s, _)| hasher.hash_one(s))
2837            {
2838                Entry::Occupied(v) => conflicting_values.push(v.get().0),
2839                Entry::Vacant(view) => {
2840                    view.insert((v, byte_strs.len() as u32));
2841                    byte_strs.push(v);
2842                }
2843            }
2844        }
2845
2846        if conflicting_values.len() != 0 {
2847            {
    ::core::panicking::panic_fmt(format_args!("duplicate symbols in the rustc symbol list and the extra symbols added by the driver: {0:?}",
            conflicting_values));
}panic!(
2848                "duplicate symbols in the rustc symbol list and the extra symbols added by the driver: {:?}",
2849                conflicting_values
2850            )
2851        }
2852
2853        Interner(Lock::new(InternerInner { arena: Default::default(), indices, byte_strs }))
2854    }
2855
2856    fn intern_str(&self, str: &str) -> Symbol {
2857        Symbol::new(self.intern_inner(str.as_bytes()))
2858    }
2859
2860    fn intern_byte_str(&self, byte_str: &[u8]) -> ByteSymbol {
2861        ByteSymbol::new(self.intern_inner(byte_str))
2862    }
2863
2864    #[inline]
2865    fn intern_inner(&self, byte_str: &[u8]) -> u32 {
2866        let hasher = FxBuildHasher::default();
2867        let hash_of_byte_str = hasher.hash_one(byte_str);
2868
2869        self.0.with_lock(|inner| {
2870            match inner.indices.entry(
2871                hash_of_byte_str,
2872                |&(s, _)| s == byte_str,
2873                |&(s, _)| hasher.hash_one(s),
2874            ) {
2875                Entry::Occupied(v) => v.get().1,
2876                Entry::Vacant(view) => {
2877                    let byte_str: &[u8] = inner.arena.alloc_slice(byte_str);
2878
2879                    // SAFETY: we can extend the arena allocation to `'static` because we
2880                    // only access these while the arena is still alive.
2881                    let byte_str: &'static [u8] = unsafe { &*(byte_str as *const [u8]) };
2882                    let idx = inner.byte_strs.len() as u32;
2883                    view.insert((byte_str, idx));
2884                    inner.byte_strs.push(byte_str);
2885                    idx
2886                }
2887            }
2888        })
2889    }
2890
2891    /// Get the symbol as a string.
2892    ///
2893    /// [`Symbol::as_str()`] should be used in preference to this function.
2894    fn get_str(&self, symbol: Symbol) -> &str {
2895        let byte_str = self.get_inner(symbol.0.as_usize());
2896        // SAFETY: known to be a UTF8 string because it's a `Symbol`.
2897        unsafe { str::from_utf8_unchecked(byte_str) }
2898    }
2899
2900    /// Get the symbol as a string.
2901    ///
2902    /// [`ByteSymbol::as_byte_str()`] should be used in preference to this function.
2903    fn get_byte_str(&self, symbol: ByteSymbol) -> &[u8] {
2904        self.get_inner(symbol.0.as_usize())
2905    }
2906
2907    fn get_inner(&self, index: usize) -> &[u8] {
2908        self.0.with_lock(|inner| inner.byte_strs[index])
2909    }
2910}
2911
2912// This module has a very short name because it's used a lot.
2913/// This module contains all the defined keyword `Symbol`s.
2914///
2915/// Given that `kw` is imported, use them like `kw::keyword_name`.
2916/// For example `kw::Loop` or `kw::Break`.
2917pub mod kw {
2918    pub use super::kw_generated::*;
2919}
2920
2921// This module has a very short name because it's used a lot.
2922/// This module contains all the defined non-keyword `Symbol`s.
2923///
2924/// Given that `sym` is imported, use them like `sym::symbol_name`.
2925/// For example `sym::rustfmt` or `sym::u8`.
2926#[diagnostic::on_unknown(
2927    label = "`{Unresolved}` is not a pre-interned symbol",
2928    note = "consider adding `{Unresolved}` to the `symbols!` invocation in compiler/rustc_span/src/symbol.rs"
2929)]
2930pub mod sym {
2931    use super::Symbol;
2932    // Used from a macro in `librustc_feature/accepted.rs`
2933    pub use super::kw::MacroRules as macro_rules;
2934    #[doc(inline)]
2935    pub use super::sym_generated::*;
2936
2937    // Used quite often in relation to C ABI.
2938    pub const C: Symbol = ascii_letter_digit('C').unwrap();
2939
2940    // RISC-V stuff
2941    #[expect(non_upper_case_globals)]
2942    pub const f: Symbol = ascii_letter_digit('f').unwrap();
2943    #[expect(non_upper_case_globals)]
2944    pub const d: Symbol = ascii_letter_digit('d').unwrap();
2945
2946    /// Get the symbol for an integer.
2947    ///
2948    /// The first few non-negative integers each have a static symbol and therefore
2949    /// are fast.
2950    pub fn integer<N: TryInto<usize> + Copy + itoa::Integer>(n: N) -> Symbol {
2951        if let Result::Ok(idx) = n.try_into() {
2952            if idx < 10 {
2953                return Symbol::new(super::SYMBOL_DIGITS_BASE + idx as u32);
2954            }
2955        }
2956        let mut buffer = itoa::Buffer::new();
2957        let printed = buffer.format(n);
2958        Symbol::intern(printed)
2959    }
2960
2961    pub const fn ascii_letter_digit(c: char) -> Option<Symbol> {
2962        let i = c as u32;
2963        Option::Some(Symbol::new(match c {
2964            '0'..='9' => super::SYMBOL_DIGITS_BASE + (i - '0' as u32),
2965            'A'..='Z' => super::SYMBOL_UPPERCASE_LETTERS_BASE + (i - 'A' as u32),
2966            'a'..='z' => super::SYMBOL_LOWERCASE_LETTERS_BASE + (i - 'a' as u32),
2967            _ => return Option::None,
2968        }))
2969    }
2970
2971    pub fn character(c: char) -> Symbol {
2972        ascii_letter_digit(c).unwrap_or_else(|| {
2973            let mut buf: [u8; char::MAX_LEN_UTF8] = Default::default();
2974            Symbol::intern(c.encode_utf8(&mut buf))
2975        })
2976    }
2977}
2978
2979impl Symbol {
2980    fn is_special(self) -> bool {
2981        self <= kw::Underscore
2982    }
2983
2984    fn is_used_keyword_always(self) -> bool {
2985        self >= kw::As && self <= kw::While
2986    }
2987
2988    fn is_unused_keyword_always(self) -> bool {
2989        self >= kw::Abstract && self <= kw::Yield
2990    }
2991
2992    fn is_used_keyword_conditional(self, edition: impl FnOnce() -> Edition) -> bool {
2993        (self >= kw::Async && self <= kw::Dyn) && edition() >= Edition::Edition2018
2994    }
2995
2996    fn is_unused_keyword_conditional(self, edition: impl Copy + FnOnce() -> Edition) -> bool {
2997        self == kw::Gen && edition().at_least_rust_2024()
2998            || self == kw::Try && edition().at_least_rust_2018()
2999    }
3000
3001    pub fn is_reserved(self, edition: impl Copy + FnOnce() -> Edition) -> bool {
3002        self.is_special()
3003            || self.is_used_keyword_always()
3004            || self.is_unused_keyword_always()
3005            || self.is_used_keyword_conditional(edition)
3006            || self.is_unused_keyword_conditional(edition)
3007    }
3008
3009    pub fn is_weak(self) -> bool {
3010        self >= kw::Auto && self <= kw::Yeet
3011    }
3012
3013    /// A keyword or reserved identifier that can be used as a path segment.
3014    pub fn is_path_segment_keyword(self) -> bool {
3015        self == kw::Super
3016            || self == kw::SelfLower
3017            || self == kw::SelfUpper
3018            || self == kw::Crate
3019            || self == kw::PathRoot
3020            || self == kw::DollarCrate
3021    }
3022
3023    /// Returns `true` if the symbol is `true` or `false`.
3024    pub fn is_bool_lit(self) -> bool {
3025        self == kw::True || self == kw::False
3026    }
3027
3028    /// Returns `true` if this symbol can be a raw identifier.
3029    pub fn can_be_raw(self) -> bool {
3030        self != sym::empty && self != kw::Underscore && !self.is_path_segment_keyword()
3031    }
3032
3033    /// Was this symbol index predefined in the compiler's `symbols!` macro?
3034    /// Note: this applies to both `Symbol`s and `ByteSymbol`s, which is why it
3035    /// takes a `u32` argument instead of a `&self` argument. Use with care.
3036    pub fn is_predefined(index: u32) -> bool {
3037        index < PREDEFINED_SYMBOLS_COUNT
3038    }
3039}
3040
3041impl Ident {
3042    /// Returns `true` for reserved identifiers used internally for elided lifetimes,
3043    /// unnamed method parameters, crate root module, error recovery etc.
3044    pub fn is_special(self) -> bool {
3045        self.name.is_special()
3046    }
3047
3048    /// Returns `true` if the token is a keyword used in the language.
3049    pub fn is_used_keyword(self) -> bool {
3050        // Note: `span.edition()` is relatively expensive, don't call it unless necessary.
3051        self.name.is_used_keyword_always()
3052            || self.name.is_used_keyword_conditional(|| self.span.edition())
3053    }
3054
3055    /// Returns `true` if the token is a keyword reserved for possible future use.
3056    pub fn is_unused_keyword(self) -> bool {
3057        // Note: `span.edition()` is relatively expensive, don't call it unless necessary.
3058        self.name.is_unused_keyword_always()
3059            || self.name.is_unused_keyword_conditional(|| self.span.edition())
3060    }
3061
3062    /// Returns `true` if the token is either a special identifier or a keyword.
3063    pub fn is_reserved(self) -> bool {
3064        // Note: `span.edition()` is relatively expensive, don't call it unless necessary.
3065        self.name.is_reserved(|| self.span.edition())
3066    }
3067
3068    /// A keyword or reserved identifier that can be used as a path segment.
3069    pub fn is_path_segment_keyword(self) -> bool {
3070        self.name.is_path_segment_keyword()
3071    }
3072
3073    /// We see this identifier in a normal identifier position, like variable name or a type.
3074    /// How was it written originally? Did it use the raw form? Let's try to guess.
3075    pub fn is_raw_guess(self) -> bool {
3076        self.name.can_be_raw() && self.is_reserved()
3077    }
3078
3079    /// Given the name of a lifetime without the first quote (`'`),
3080    /// returns whether the lifetime name is reserved (therefore invalid)
3081    pub fn is_reserved_lifetime(self) -> bool {
3082        self.is_reserved() && ![kw::Underscore, kw::Static].contains(&self.name)
3083    }
3084
3085    pub fn is_raw_lifetime_guess(self) -> bool {
3086        // Check that the name isn't just a single quote.
3087        // `self.without_first_quote()` would return empty ident, which triggers debug assert.
3088        if self.name.as_str() == "'" {
3089            return false;
3090        }
3091        let ident_without_apostrophe = self.without_first_quote();
3092        ident_without_apostrophe.name != self.name
3093            && ident_without_apostrophe.name.can_be_raw()
3094            && ident_without_apostrophe.is_reserved_lifetime()
3095    }
3096
3097    pub fn guess_print_mode(self) -> IdentPrintMode {
3098        if self.is_raw_lifetime_guess() {
3099            IdentPrintMode::RawLifetime
3100        } else if self.is_raw_guess() {
3101            IdentPrintMode::RawIdent
3102        } else {
3103            IdentPrintMode::Normal
3104        }
3105    }
3106
3107    /// Whether this would be the identifier for a tuple field like `self.0`, as
3108    /// opposed to a named field like `self.thing`.
3109    pub fn is_numeric(self) -> bool {
3110        self.as_str().bytes().all(|b| b.is_ascii_digit())
3111    }
3112}
3113
3114/// Collect all the keywords in a given edition into a vector.
3115///
3116/// *Note:* Please update this if a new keyword is added beyond the current
3117/// range.
3118pub fn used_keywords(edition: impl Copy + FnOnce() -> Edition) -> Vec<Symbol> {
3119    (kw::DollarCrate.as_u32()..kw::Yeet.as_u32())
3120        .filter_map(|kw| {
3121            let kw = Symbol::new(kw);
3122            if kw.is_used_keyword_always() || kw.is_used_keyword_conditional(edition) {
3123                Some(kw)
3124            } else {
3125                None
3126            }
3127        })
3128        .collect()
3129}