Skip to main content

rustc_attr_parsing/
context.rs

1use std::cell::RefCell;
2use std::collections::BTreeMap;
3use std::ops::{Deref, DerefMut};
4use std::sync::LazyLock;
5
6use private::Sealed;
7use rustc_ast::{AttrStyle, MetaItemLit, NodeId};
8use rustc_errors::{Diag, Diagnostic, Level};
9use rustc_feature::{AttrSuggestionStyle, AttributeTemplate};
10use rustc_hir::attrs::AttributeKind;
11use rustc_hir::lints::AttributeLintKind;
12use rustc_hir::{AttrPath, HirId};
13use rustc_session::Session;
14use rustc_session::lint::{Lint, LintId};
15use rustc_span::{ErrorGuaranteed, Span, Symbol};
16
17use crate::AttributeParser;
18use crate::attributes::allow_unstable::{
19    AllowConstFnUnstableParser, AllowInternalUnstableParser, UnstableFeatureBoundParser,
20};
21use crate::attributes::body::CoroutineParser;
22use crate::attributes::cfi_encoding::CfiEncodingParser;
23use crate::attributes::codegen_attrs::{
24    ColdParser, CoverageParser, EiiForeignItemParser, ExportNameParser, ForceTargetFeatureParser,
25    NakedParser, NoMangleParser, ObjcClassParser, ObjcSelectorParser, OptimizeParser,
26    PatchableFunctionEntryParser, RustcPassIndirectlyInNonRusticAbisParser, SanitizeParser,
27    TargetFeatureParser, ThreadLocalParser, TrackCallerParser, UsedParser,
28};
29use crate::attributes::confusables::ConfusablesParser;
30use crate::attributes::crate_level::{
31    CrateNameParser, CrateTypeParser, MoveSizeLimitParser, NeedsPanicRuntimeParser,
32    NoBuiltinsParser, NoCoreParser, NoMainParser, NoStdParser, PanicRuntimeParser,
33    PatternComplexityLimitParser, ProfilerRuntimeParser, RecursionLimitParser,
34    RustcCoherenceIsCoreParser, TypeLengthLimitParser, WindowsSubsystemParser,
35};
36use crate::attributes::debugger::DebuggerViualizerParser;
37use crate::attributes::deprecation::DeprecationParser;
38use crate::attributes::do_not_recommend::DoNotRecommendParser;
39use crate::attributes::doc::DocParser;
40use crate::attributes::dummy::DummyParser;
41use crate::attributes::inline::{InlineParser, RustcForceInlineParser};
42use crate::attributes::instruction_set::InstructionSetParser;
43use crate::attributes::link_attrs::{
44    CompilerBuiltinsParser, ExportStableParser, FfiConstParser, FfiPureParser, LinkNameParser,
45    LinkOrdinalParser, LinkParser, LinkSectionParser, LinkageParser, NeedsAllocatorParser,
46    StdInternalSymbolParser,
47};
48use crate::attributes::lint_helpers::{
49    AsPtrParser, AutomaticallyDerivedParser, PassByValueParser, PubTransparentParser,
50    RustcShouldNotBeCalledOnConstItems,
51};
52use crate::attributes::loop_match::{ConstContinueParser, LoopMatchParser};
53use crate::attributes::macro_attrs::{
54    AllowInternalUnsafeParser, CollapseDebugInfoParser, MacroEscapeParser, MacroExportParser,
55    MacroUseParser,
56};
57use crate::attributes::must_not_suspend::MustNotSuspendParser;
58use crate::attributes::must_use::MustUseParser;
59use crate::attributes::no_implicit_prelude::NoImplicitPreludeParser;
60use crate::attributes::no_link::NoLinkParser;
61use crate::attributes::non_exhaustive::NonExhaustiveParser;
62use crate::attributes::path::PathParser as PathAttributeParser;
63use crate::attributes::pin_v2::PinV2Parser;
64use crate::attributes::proc_macro_attrs::{
65    ProcMacroAttributeParser, ProcMacroDeriveParser, ProcMacroParser, RustcBuiltinMacroParser,
66};
67use crate::attributes::prototype::CustomMirParser;
68use crate::attributes::repr::{AlignParser, AlignStaticParser, ReprParser};
69use crate::attributes::rustc_allocator::{
70    RustcAllocatorParser, RustcAllocatorZeroedParser, RustcAllocatorZeroedVariantParser,
71    RustcDeallocatorParser, RustcReallocatorParser,
72};
73use crate::attributes::rustc_dump::{
74    RustcDumpDefParents, RustcDumpItemBounds, RustcDumpPredicates, RustcDumpUserArgs,
75    RustcDumpVtable,
76};
77use crate::attributes::rustc_internal::{
78    RustcHasIncoherentInherentImplsParser, RustcLayoutParser, RustcLayoutScalarValidRangeEndParser,
79    RustcLayoutScalarValidRangeStartParser, RustcLegacyConstGenericsParser,
80    RustcLintOptDenyFieldAccessParser, RustcLintOptTyParser, RustcLintQueryInstabilityParser,
81    RustcLintUntrackedQueryInformationParser, RustcMainParser, RustcMustImplementOneOfParser,
82    RustcNeverReturnsNullPointerParser, RustcNoImplicitAutorefsParser,
83    RustcNonConstTraitMethodParser, RustcNounwindParser, RustcObjectLifetimeDefaultParser,
84    RustcOffloadKernelParser, RustcScalableVectorParser, RustcSimdMonomorphizeLaneLimitParser,
85};
86use crate::attributes::semantics::MayDangleParser;
87use crate::attributes::stability::{
88    BodyStabilityParser, ConstStabilityIndirectParser, ConstStabilityParser, StabilityParser,
89};
90use crate::attributes::test_attrs::{
91    IgnoreParser, RustcVarianceOfOpaquesParser, RustcVarianceParser, ShouldPanicParser,
92};
93use crate::attributes::traits::{
94    AllowIncoherentImplParser, CoinductiveParser, DenyExplicitImplParser,
95    DynIncompatibleTraitParser, FundamentalParser, MarkerParser, ParenSugarParser, PointeeParser,
96    SkipDuringMethodDispatchParser, SpecializationTraitParser, TypeConstParser,
97    UnsafeSpecializationMarkerParser,
98};
99use crate::attributes::transparency::TransparencyParser;
100use crate::attributes::{AttributeParser as _, Combine, Single, WithoutArgs};
101use crate::parser::{ArgParser, RefPathParser};
102use crate::session_diagnostics::{
103    AttributeParseError, AttributeParseErrorReason, ParsedDescription,
104};
105use crate::target_checking::AllowedTargets;
106type GroupType<S> = LazyLock<GroupTypeInner<S>>;
107
108pub(super) struct GroupTypeInner<S: Stage> {
109    pub(super) accepters: BTreeMap<&'static [Symbol], Vec<GroupTypeInnerAccept<S>>>,
110}
111
112pub(super) struct GroupTypeInnerAccept<S: Stage> {
113    pub(super) template: AttributeTemplate,
114    pub(super) accept_fn: AcceptFn<S>,
115    pub(super) allowed_targets: AllowedTargets,
116    pub(super) finalizer: FinalizeFn<S>,
117}
118
119pub(crate) type AcceptFn<S> =
120    Box<dyn for<'sess, 'a> Fn(&mut AcceptContext<'_, 'sess, S>, &ArgParser) + Send + Sync>;
121pub(crate) type FinalizeFn<S> =
122    Box<dyn Send + Sync + Fn(&mut FinalizeContext<'_, '_, S>) -> Option<AttributeKind>>;
123
124macro_rules! attribute_parsers {
125    (
126        pub(crate) static $name: ident = [$($names: ty),* $(,)?];
127    ) => {
128        mod early {
129            use super::*;
130            type Combine<T> = super::Combine<T, Early>;
131            type Single<T> = super::Single<T, Early>;
132            type WithoutArgs<T> = super::WithoutArgs<T, Early>;
133
134            attribute_parsers!(@[Early] pub(crate) static $name = [$($names),*];);
135        }
136        mod late {
137            use super::*;
138            type Combine<T> = super::Combine<T, Late>;
139            type Single<T> = super::Single<T, Late>;
140            type WithoutArgs<T> = super::WithoutArgs<T, Late>;
141
142            attribute_parsers!(@[Late] pub(crate) static $name = [$($names),*];);
143        }
144    };
145    (
146        @[$stage: ty] pub(crate) static $name: ident = [$($names: ty),* $(,)?];
147    ) => {
148        pub(crate) static $name: GroupType<$stage> = LazyLock::new(|| {
149            let mut accepters = BTreeMap::<_, Vec<GroupTypeInnerAccept<$stage>>>::new();
150            $(
151                {
152                    thread_local! {
153                        static STATE_OBJECT: RefCell<$names> = RefCell::new(<$names>::default());
154                    };
155
156                    for (path, template, accept_fn) in <$names>::ATTRIBUTES {
157                        accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
158                            template: *template,
159                            accept_fn: Box::new(|cx, args| {
160                                STATE_OBJECT.with_borrow_mut(|s| {
161                                    accept_fn(s, cx, args)
162                                })
163                            }),
164                            allowed_targets: <$names as crate::attributes::AttributeParser<$stage>>::ALLOWED_TARGETS,
165                            finalizer: Box::new(|cx| {
166                                let state = STATE_OBJECT.take();
167                                state.finalize(cx)
168                            }),
169                        });
170                    }
171                }
172            )*
173
174            GroupTypeInner { accepters }
175        });
176    };
177}
178mod early {
    use super::*;
    type Combine<T> = super::Combine<T, Early>;
    type Single<T> = super::Single<T, Early>;
    type WithoutArgs<T> = super::WithoutArgs<T, Early>;
    pub(crate) static ATTRIBUTE_PARSERS: GroupType<Early> =
        LazyLock::new(||
                {
                    let mut accepters =
                        BTreeMap::<_, Vec<GroupTypeInnerAccept<Early>>>::new();
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<AlignParser>> =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn() -> RefCell<AlignParser> {
                                    RefCell::new(<AlignParser>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<AlignParser>>() {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<AlignParser>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<AlignParser>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in <AlignParser>::ATTRIBUTES
                            {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <AlignParser as
                                        crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<AlignStaticParser>> =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<AlignStaticParser> {
                                    RefCell::new(<AlignStaticParser>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<AlignStaticParser>>() {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<AlignStaticParser>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<AlignStaticParser>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <AlignStaticParser>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <AlignStaticParser as
                                        crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<BodyStabilityParser>> =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<BodyStabilityParser> {
                                    RefCell::new(<BodyStabilityParser>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<BodyStabilityParser>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<BodyStabilityParser>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<BodyStabilityParser>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <BodyStabilityParser>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <BodyStabilityParser as
                                        crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<ConfusablesParser>> =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<ConfusablesParser> {
                                    RefCell::new(<ConfusablesParser>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<ConfusablesParser>>() {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<ConfusablesParser>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<ConfusablesParser>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <ConfusablesParser>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <ConfusablesParser as
                                        crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<ConstStabilityParser>> =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<ConstStabilityParser> {
                                    RefCell::new(<ConstStabilityParser>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<ConstStabilityParser>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<ConstStabilityParser>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<ConstStabilityParser>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <ConstStabilityParser>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <ConstStabilityParser as
                                        crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<DocParser>> =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn() -> RefCell<DocParser> {
                                    RefCell::new(<DocParser>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<DocParser>>() {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<DocParser>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<DocParser>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in <DocParser>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <DocParser as
                                        crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<MacroUseParser>> =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<MacroUseParser> {
                                    RefCell::new(<MacroUseParser>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<MacroUseParser>>() {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<MacroUseParser>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<MacroUseParser>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <MacroUseParser>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <MacroUseParser as
                                        crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<NakedParser>> =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn() -> RefCell<NakedParser> {
                                    RefCell::new(<NakedParser>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<NakedParser>>() {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<NakedParser>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<NakedParser>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in <NakedParser>::ATTRIBUTES
                            {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <NakedParser as
                                        crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<StabilityParser>> =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<StabilityParser> {
                                    RefCell::new(<StabilityParser>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<StabilityParser>>() {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<StabilityParser>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<StabilityParser>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <StabilityParser>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <StabilityParser as
                                        crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<UsedParser>> =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn() -> RefCell<UsedParser> {
                                    RefCell::new(<UsedParser>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<UsedParser>>() {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<UsedParser>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<UsedParser>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in <UsedParser>::ATTRIBUTES
                            {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <UsedParser as
                                        crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Combine<AllowConstFnUnstableParser>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Combine<AllowConstFnUnstableParser>> {
                                    RefCell::new(<Combine<AllowConstFnUnstableParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Combine<AllowConstFnUnstableParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Combine<AllowConstFnUnstableParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Combine<AllowConstFnUnstableParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Combine<AllowConstFnUnstableParser>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Combine<AllowConstFnUnstableParser> as
                                        crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Combine<AllowInternalUnstableParser>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Combine<AllowInternalUnstableParser>> {
                                    RefCell::new(<Combine<AllowInternalUnstableParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Combine<AllowInternalUnstableParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Combine<AllowInternalUnstableParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Combine<AllowInternalUnstableParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Combine<AllowInternalUnstableParser>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Combine<AllowInternalUnstableParser> as
                                        crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Combine<CrateTypeParser>>> =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Combine<CrateTypeParser>> {
                                    RefCell::new(<Combine<CrateTypeParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Combine<CrateTypeParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Combine<CrateTypeParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Combine<CrateTypeParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Combine<CrateTypeParser>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Combine<CrateTypeParser> as
                                        crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Combine<DebuggerViualizerParser>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Combine<DebuggerViualizerParser>> {
                                    RefCell::new(<Combine<DebuggerViualizerParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Combine<DebuggerViualizerParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Combine<DebuggerViualizerParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Combine<DebuggerViualizerParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Combine<DebuggerViualizerParser>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Combine<DebuggerViualizerParser> as
                                        crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Combine<ForceTargetFeatureParser>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Combine<ForceTargetFeatureParser>> {
                                    RefCell::new(<Combine<ForceTargetFeatureParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Combine<ForceTargetFeatureParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Combine<ForceTargetFeatureParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Combine<ForceTargetFeatureParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Combine<ForceTargetFeatureParser>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Combine<ForceTargetFeatureParser> as
                                        crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Combine<LinkParser>>> =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Combine<LinkParser>> {
                                    RefCell::new(<Combine<LinkParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Combine<LinkParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Combine<LinkParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Combine<LinkParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Combine<LinkParser>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Combine<LinkParser> as
                                        crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Combine<ReprParser>>> =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Combine<ReprParser>> {
                                    RefCell::new(<Combine<ReprParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Combine<ReprParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Combine<ReprParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Combine<ReprParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Combine<ReprParser>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Combine<ReprParser> as
                                        crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Combine<RustcLayoutParser>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Combine<RustcLayoutParser>> {
                                    RefCell::new(<Combine<RustcLayoutParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Combine<RustcLayoutParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Combine<RustcLayoutParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Combine<RustcLayoutParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Combine<RustcLayoutParser>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Combine<RustcLayoutParser> as
                                        crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Combine<TargetFeatureParser>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Combine<TargetFeatureParser>> {
                                    RefCell::new(<Combine<TargetFeatureParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Combine<TargetFeatureParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Combine<TargetFeatureParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Combine<TargetFeatureParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Combine<TargetFeatureParser>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Combine<TargetFeatureParser> as
                                        crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Combine<UnstableFeatureBoundParser>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Combine<UnstableFeatureBoundParser>> {
                                    RefCell::new(<Combine<UnstableFeatureBoundParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Combine<UnstableFeatureBoundParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Combine<UnstableFeatureBoundParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Combine<UnstableFeatureBoundParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Combine<UnstableFeatureBoundParser>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Combine<UnstableFeatureBoundParser> as
                                        crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<CfiEncodingParser>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<CfiEncodingParser>> {
                                    RefCell::new(<Single<CfiEncodingParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<CfiEncodingParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<CfiEncodingParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<CfiEncodingParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<CfiEncodingParser>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<CfiEncodingParser> as
                                        crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<CollapseDebugInfoParser>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<CollapseDebugInfoParser>> {
                                    RefCell::new(<Single<CollapseDebugInfoParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<CollapseDebugInfoParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<CollapseDebugInfoParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<CollapseDebugInfoParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<CollapseDebugInfoParser>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<CollapseDebugInfoParser> as
                                        crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<CoverageParser>>> =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<CoverageParser>> {
                                    RefCell::new(<Single<CoverageParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<CoverageParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<CoverageParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<CoverageParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<CoverageParser>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<CoverageParser> as
                                        crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<CrateNameParser>>> =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<CrateNameParser>> {
                                    RefCell::new(<Single<CrateNameParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<CrateNameParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<CrateNameParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<CrateNameParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<CrateNameParser>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<CrateNameParser> as
                                        crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<CustomMirParser>>> =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<CustomMirParser>> {
                                    RefCell::new(<Single<CustomMirParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<CustomMirParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<CustomMirParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<CustomMirParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<CustomMirParser>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<CustomMirParser> as
                                        crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<DeprecationParser>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<DeprecationParser>> {
                                    RefCell::new(<Single<DeprecationParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<DeprecationParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<DeprecationParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<DeprecationParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<DeprecationParser>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<DeprecationParser> as
                                        crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<DoNotRecommendParser>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<DoNotRecommendParser>> {
                                    RefCell::new(<Single<DoNotRecommendParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<DoNotRecommendParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<DoNotRecommendParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<DoNotRecommendParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<DoNotRecommendParser>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<DoNotRecommendParser> as
                                        crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<DummyParser>>> =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<DummyParser>> {
                                    RefCell::new(<Single<DummyParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<DummyParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<DummyParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<DummyParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<DummyParser>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<DummyParser> as
                                        crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<ExportNameParser>>> =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<ExportNameParser>> {
                                    RefCell::new(<Single<ExportNameParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<ExportNameParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<ExportNameParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<ExportNameParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<ExportNameParser>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<ExportNameParser> as
                                        crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<IgnoreParser>>> =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<IgnoreParser>> {
                                    RefCell::new(<Single<IgnoreParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<IgnoreParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<IgnoreParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<IgnoreParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<IgnoreParser>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<IgnoreParser> as
                                        crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<InlineParser>>> =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<InlineParser>> {
                                    RefCell::new(<Single<InlineParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<InlineParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<InlineParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<InlineParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<InlineParser>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<InlineParser> as
                                        crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<InstructionSetParser>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<InstructionSetParser>> {
                                    RefCell::new(<Single<InstructionSetParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<InstructionSetParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<InstructionSetParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<InstructionSetParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<InstructionSetParser>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<InstructionSetParser> as
                                        crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<LinkNameParser>>> =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<LinkNameParser>> {
                                    RefCell::new(<Single<LinkNameParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<LinkNameParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<LinkNameParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<LinkNameParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<LinkNameParser>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<LinkNameParser> as
                                        crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<LinkOrdinalParser>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<LinkOrdinalParser>> {
                                    RefCell::new(<Single<LinkOrdinalParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<LinkOrdinalParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<LinkOrdinalParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<LinkOrdinalParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<LinkOrdinalParser>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<LinkOrdinalParser> as
                                        crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<LinkSectionParser>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<LinkSectionParser>> {
                                    RefCell::new(<Single<LinkSectionParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<LinkSectionParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<LinkSectionParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<LinkSectionParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<LinkSectionParser>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<LinkSectionParser> as
                                        crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<LinkageParser>>> =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<LinkageParser>> {
                                    RefCell::new(<Single<LinkageParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<LinkageParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<LinkageParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<LinkageParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<LinkageParser>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<LinkageParser> as
                                        crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<MacroExportParser>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<MacroExportParser>> {
                                    RefCell::new(<Single<MacroExportParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<MacroExportParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<MacroExportParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<MacroExportParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<MacroExportParser>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<MacroExportParser> as
                                        crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<MoveSizeLimitParser>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<MoveSizeLimitParser>> {
                                    RefCell::new(<Single<MoveSizeLimitParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<MoveSizeLimitParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<MoveSizeLimitParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<MoveSizeLimitParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<MoveSizeLimitParser>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<MoveSizeLimitParser> as
                                        crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<MustNotSuspendParser>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<MustNotSuspendParser>> {
                                    RefCell::new(<Single<MustNotSuspendParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<MustNotSuspendParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<MustNotSuspendParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<MustNotSuspendParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<MustNotSuspendParser>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<MustNotSuspendParser> as
                                        crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<MustUseParser>>> =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<MustUseParser>> {
                                    RefCell::new(<Single<MustUseParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<MustUseParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<MustUseParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<MustUseParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<MustUseParser>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<MustUseParser> as
                                        crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<ObjcClassParser>>> =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<ObjcClassParser>> {
                                    RefCell::new(<Single<ObjcClassParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<ObjcClassParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<ObjcClassParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<ObjcClassParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<ObjcClassParser>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<ObjcClassParser> as
                                        crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<ObjcSelectorParser>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<ObjcSelectorParser>> {
                                    RefCell::new(<Single<ObjcSelectorParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<ObjcSelectorParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<ObjcSelectorParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<ObjcSelectorParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<ObjcSelectorParser>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<ObjcSelectorParser> as
                                        crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<OptimizeParser>>> =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<OptimizeParser>> {
                                    RefCell::new(<Single<OptimizeParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<OptimizeParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<OptimizeParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<OptimizeParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<OptimizeParser>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<OptimizeParser> as
                                        crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<PatchableFunctionEntryParser>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<PatchableFunctionEntryParser>> {
                                    RefCell::new(<Single<PatchableFunctionEntryParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<PatchableFunctionEntryParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<PatchableFunctionEntryParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<PatchableFunctionEntryParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<PatchableFunctionEntryParser>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<PatchableFunctionEntryParser> as
                                        crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<PathAttributeParser>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<PathAttributeParser>> {
                                    RefCell::new(<Single<PathAttributeParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<PathAttributeParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<PathAttributeParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<PathAttributeParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<PathAttributeParser>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<PathAttributeParser> as
                                        crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<PatternComplexityLimitParser>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<PatternComplexityLimitParser>> {
                                    RefCell::new(<Single<PatternComplexityLimitParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<PatternComplexityLimitParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<PatternComplexityLimitParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<PatternComplexityLimitParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<PatternComplexityLimitParser>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<PatternComplexityLimitParser> as
                                        crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<ProcMacroDeriveParser>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<ProcMacroDeriveParser>> {
                                    RefCell::new(<Single<ProcMacroDeriveParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<ProcMacroDeriveParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<ProcMacroDeriveParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<ProcMacroDeriveParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<ProcMacroDeriveParser>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<ProcMacroDeriveParser> as
                                        crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<RecursionLimitParser>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<RecursionLimitParser>> {
                                    RefCell::new(<Single<RecursionLimitParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<RecursionLimitParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<RecursionLimitParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<RecursionLimitParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<RecursionLimitParser>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<RecursionLimitParser> as
                                        crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<RustcAllocatorZeroedVariantParser>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<RustcAllocatorZeroedVariantParser>> {
                                    RefCell::new(<Single<RustcAllocatorZeroedVariantParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<RustcAllocatorZeroedVariantParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<RustcAllocatorZeroedVariantParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<RustcAllocatorZeroedVariantParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<RustcAllocatorZeroedVariantParser>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<RustcAllocatorZeroedVariantParser>
                                        as
                                        crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<RustcBuiltinMacroParser>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<RustcBuiltinMacroParser>> {
                                    RefCell::new(<Single<RustcBuiltinMacroParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<RustcBuiltinMacroParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<RustcBuiltinMacroParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<RustcBuiltinMacroParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<RustcBuiltinMacroParser>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<RustcBuiltinMacroParser> as
                                        crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<RustcForceInlineParser>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<RustcForceInlineParser>> {
                                    RefCell::new(<Single<RustcForceInlineParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<RustcForceInlineParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<RustcForceInlineParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<RustcForceInlineParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<RustcForceInlineParser>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<RustcForceInlineParser> as
                                        crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<RustcLayoutScalarValidRangeEndParser>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<RustcLayoutScalarValidRangeEndParser>> {
                                    RefCell::new(<Single<RustcLayoutScalarValidRangeEndParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<RustcLayoutScalarValidRangeEndParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<RustcLayoutScalarValidRangeEndParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<RustcLayoutScalarValidRangeEndParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<RustcLayoutScalarValidRangeEndParser>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<RustcLayoutScalarValidRangeEndParser>
                                        as
                                        crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<RustcLayoutScalarValidRangeStartParser>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<RustcLayoutScalarValidRangeStartParser>> {
                                    RefCell::new(<Single<RustcLayoutScalarValidRangeStartParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<RustcLayoutScalarValidRangeStartParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<RustcLayoutScalarValidRangeStartParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<RustcLayoutScalarValidRangeStartParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<RustcLayoutScalarValidRangeStartParser>>::ATTRIBUTES
                            {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<RustcLayoutScalarValidRangeStartParser>
                                        as
                                        crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<RustcLegacyConstGenericsParser>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<RustcLegacyConstGenericsParser>> {
                                    RefCell::new(<Single<RustcLegacyConstGenericsParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<RustcLegacyConstGenericsParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<RustcLegacyConstGenericsParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<RustcLegacyConstGenericsParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<RustcLegacyConstGenericsParser>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<RustcLegacyConstGenericsParser> as
                                        crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<RustcLintOptDenyFieldAccessParser>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<RustcLintOptDenyFieldAccessParser>> {
                                    RefCell::new(<Single<RustcLintOptDenyFieldAccessParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<RustcLintOptDenyFieldAccessParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<RustcLintOptDenyFieldAccessParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<RustcLintOptDenyFieldAccessParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<RustcLintOptDenyFieldAccessParser>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<RustcLintOptDenyFieldAccessParser>
                                        as
                                        crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<RustcMustImplementOneOfParser>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<RustcMustImplementOneOfParser>> {
                                    RefCell::new(<Single<RustcMustImplementOneOfParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<RustcMustImplementOneOfParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<RustcMustImplementOneOfParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<RustcMustImplementOneOfParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<RustcMustImplementOneOfParser>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<RustcMustImplementOneOfParser> as
                                        crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<RustcObjectLifetimeDefaultParser>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<RustcObjectLifetimeDefaultParser>> {
                                    RefCell::new(<Single<RustcObjectLifetimeDefaultParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<RustcObjectLifetimeDefaultParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<RustcObjectLifetimeDefaultParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<RustcObjectLifetimeDefaultParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<RustcObjectLifetimeDefaultParser>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<RustcObjectLifetimeDefaultParser>
                                        as
                                        crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<RustcScalableVectorParser>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<RustcScalableVectorParser>> {
                                    RefCell::new(<Single<RustcScalableVectorParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<RustcScalableVectorParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<RustcScalableVectorParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<RustcScalableVectorParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<RustcScalableVectorParser>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<RustcScalableVectorParser> as
                                        crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<RustcSimdMonomorphizeLaneLimitParser>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<RustcSimdMonomorphizeLaneLimitParser>> {
                                    RefCell::new(<Single<RustcSimdMonomorphizeLaneLimitParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<RustcSimdMonomorphizeLaneLimitParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<RustcSimdMonomorphizeLaneLimitParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<RustcSimdMonomorphizeLaneLimitParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<RustcSimdMonomorphizeLaneLimitParser>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<RustcSimdMonomorphizeLaneLimitParser>
                                        as
                                        crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<SanitizeParser>>> =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<SanitizeParser>> {
                                    RefCell::new(<Single<SanitizeParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<SanitizeParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<SanitizeParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<SanitizeParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<SanitizeParser>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<SanitizeParser> as
                                        crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<ShouldPanicParser>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<ShouldPanicParser>> {
                                    RefCell::new(<Single<ShouldPanicParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<ShouldPanicParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<ShouldPanicParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<ShouldPanicParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<ShouldPanicParser>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<ShouldPanicParser> as
                                        crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<SkipDuringMethodDispatchParser>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<SkipDuringMethodDispatchParser>> {
                                    RefCell::new(<Single<SkipDuringMethodDispatchParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<SkipDuringMethodDispatchParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<SkipDuringMethodDispatchParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<SkipDuringMethodDispatchParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<SkipDuringMethodDispatchParser>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<SkipDuringMethodDispatchParser> as
                                        crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<TransparencyParser>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<TransparencyParser>> {
                                    RefCell::new(<Single<TransparencyParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<TransparencyParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<TransparencyParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<TransparencyParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<TransparencyParser>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<TransparencyParser> as
                                        crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<TypeLengthLimitParser>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<TypeLengthLimitParser>> {
                                    RefCell::new(<Single<TypeLengthLimitParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<TypeLengthLimitParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<TypeLengthLimitParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<TypeLengthLimitParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<TypeLengthLimitParser>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<TypeLengthLimitParser> as
                                        crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WindowsSubsystemParser>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WindowsSubsystemParser>> {
                                    RefCell::new(<Single<WindowsSubsystemParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WindowsSubsystemParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WindowsSubsystemParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WindowsSubsystemParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WindowsSubsystemParser>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WindowsSubsystemParser> as
                                        crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<AllowIncoherentImplParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<AllowIncoherentImplParser>>> {
                                    RefCell::new(<Single<WithoutArgs<AllowIncoherentImplParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<AllowIncoherentImplParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<AllowIncoherentImplParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<AllowIncoherentImplParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<AllowIncoherentImplParser>>>::ATTRIBUTES
                            {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<AllowIncoherentImplParser>>
                                        as
                                        crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<AllowInternalUnsafeParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<AllowInternalUnsafeParser>>> {
                                    RefCell::new(<Single<WithoutArgs<AllowInternalUnsafeParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<AllowInternalUnsafeParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<AllowInternalUnsafeParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<AllowInternalUnsafeParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<AllowInternalUnsafeParser>>>::ATTRIBUTES
                            {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<AllowInternalUnsafeParser>>
                                        as
                                        crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<AsPtrParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<AsPtrParser>>> {
                                    RefCell::new(<Single<WithoutArgs<AsPtrParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<AsPtrParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<AsPtrParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<AsPtrParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<AsPtrParser>>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<AsPtrParser>> as
                                        crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<AutomaticallyDerivedParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    ->
                                        RefCell<Single<WithoutArgs<AutomaticallyDerivedParser>>> {
                                    RefCell::new(<Single<WithoutArgs<AutomaticallyDerivedParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<AutomaticallyDerivedParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<AutomaticallyDerivedParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<AutomaticallyDerivedParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<AutomaticallyDerivedParser>>>::ATTRIBUTES
                            {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<AutomaticallyDerivedParser>>
                                        as
                                        crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<CoinductiveParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<CoinductiveParser>>> {
                                    RefCell::new(<Single<WithoutArgs<CoinductiveParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<CoinductiveParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<CoinductiveParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<CoinductiveParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<CoinductiveParser>>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<CoinductiveParser>> as
                                        crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<ColdParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<ColdParser>>> {
                                    RefCell::new(<Single<WithoutArgs<ColdParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<ColdParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<ColdParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<ColdParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<ColdParser>>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<ColdParser>> as
                                        crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<CompilerBuiltinsParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<CompilerBuiltinsParser>>> {
                                    RefCell::new(<Single<WithoutArgs<CompilerBuiltinsParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<CompilerBuiltinsParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<CompilerBuiltinsParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<CompilerBuiltinsParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<CompilerBuiltinsParser>>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<CompilerBuiltinsParser>>
                                        as
                                        crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<ConstContinueParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<ConstContinueParser>>> {
                                    RefCell::new(<Single<WithoutArgs<ConstContinueParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<ConstContinueParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<ConstContinueParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<ConstContinueParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<ConstContinueParser>>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<ConstContinueParser>>
                                        as
                                        crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<ConstStabilityIndirectParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    ->
                                        RefCell<Single<WithoutArgs<ConstStabilityIndirectParser>>> {
                                    RefCell::new(<Single<WithoutArgs<ConstStabilityIndirectParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<ConstStabilityIndirectParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<ConstStabilityIndirectParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<ConstStabilityIndirectParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<ConstStabilityIndirectParser>>>::ATTRIBUTES
                            {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<ConstStabilityIndirectParser>>
                                        as
                                        crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<CoroutineParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<CoroutineParser>>> {
                                    RefCell::new(<Single<WithoutArgs<CoroutineParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<CoroutineParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<CoroutineParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<CoroutineParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<CoroutineParser>>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<CoroutineParser>> as
                                        crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<DenyExplicitImplParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<DenyExplicitImplParser>>> {
                                    RefCell::new(<Single<WithoutArgs<DenyExplicitImplParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<DenyExplicitImplParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<DenyExplicitImplParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<DenyExplicitImplParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<DenyExplicitImplParser>>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<DenyExplicitImplParser>>
                                        as
                                        crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<DynIncompatibleTraitParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    ->
                                        RefCell<Single<WithoutArgs<DynIncompatibleTraitParser>>> {
                                    RefCell::new(<Single<WithoutArgs<DynIncompatibleTraitParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<DynIncompatibleTraitParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<DynIncompatibleTraitParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<DynIncompatibleTraitParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<DynIncompatibleTraitParser>>>::ATTRIBUTES
                            {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<DynIncompatibleTraitParser>>
                                        as
                                        crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<EiiForeignItemParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<EiiForeignItemParser>>> {
                                    RefCell::new(<Single<WithoutArgs<EiiForeignItemParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<EiiForeignItemParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<EiiForeignItemParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<EiiForeignItemParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<EiiForeignItemParser>>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<EiiForeignItemParser>>
                                        as
                                        crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<ExportStableParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<ExportStableParser>>> {
                                    RefCell::new(<Single<WithoutArgs<ExportStableParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<ExportStableParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<ExportStableParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<ExportStableParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<ExportStableParser>>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<ExportStableParser>> as
                                        crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<FfiConstParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<FfiConstParser>>> {
                                    RefCell::new(<Single<WithoutArgs<FfiConstParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<FfiConstParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<FfiConstParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<FfiConstParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<FfiConstParser>>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<FfiConstParser>> as
                                        crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<FfiPureParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<FfiPureParser>>> {
                                    RefCell::new(<Single<WithoutArgs<FfiPureParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<FfiPureParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<FfiPureParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<FfiPureParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<FfiPureParser>>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<FfiPureParser>> as
                                        crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<FundamentalParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<FundamentalParser>>> {
                                    RefCell::new(<Single<WithoutArgs<FundamentalParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<FundamentalParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<FundamentalParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<FundamentalParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<FundamentalParser>>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<FundamentalParser>> as
                                        crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<LoopMatchParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<LoopMatchParser>>> {
                                    RefCell::new(<Single<WithoutArgs<LoopMatchParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<LoopMatchParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<LoopMatchParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<LoopMatchParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<LoopMatchParser>>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<LoopMatchParser>> as
                                        crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<MacroEscapeParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<MacroEscapeParser>>> {
                                    RefCell::new(<Single<WithoutArgs<MacroEscapeParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<MacroEscapeParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<MacroEscapeParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<MacroEscapeParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<MacroEscapeParser>>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<MacroEscapeParser>> as
                                        crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<MarkerParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<MarkerParser>>> {
                                    RefCell::new(<Single<WithoutArgs<MarkerParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<MarkerParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<MarkerParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<MarkerParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<MarkerParser>>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<MarkerParser>> as
                                        crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<MayDangleParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<MayDangleParser>>> {
                                    RefCell::new(<Single<WithoutArgs<MayDangleParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<MayDangleParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<MayDangleParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<MayDangleParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<MayDangleParser>>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<MayDangleParser>> as
                                        crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<NeedsAllocatorParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<NeedsAllocatorParser>>> {
                                    RefCell::new(<Single<WithoutArgs<NeedsAllocatorParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<NeedsAllocatorParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<NeedsAllocatorParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<NeedsAllocatorParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<NeedsAllocatorParser>>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<NeedsAllocatorParser>>
                                        as
                                        crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<NeedsPanicRuntimeParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<NeedsPanicRuntimeParser>>> {
                                    RefCell::new(<Single<WithoutArgs<NeedsPanicRuntimeParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<NeedsPanicRuntimeParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<NeedsPanicRuntimeParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<NeedsPanicRuntimeParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<NeedsPanicRuntimeParser>>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<NeedsPanicRuntimeParser>>
                                        as
                                        crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<NoBuiltinsParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<NoBuiltinsParser>>> {
                                    RefCell::new(<Single<WithoutArgs<NoBuiltinsParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<NoBuiltinsParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<NoBuiltinsParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<NoBuiltinsParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<NoBuiltinsParser>>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<NoBuiltinsParser>> as
                                        crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<NoCoreParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<NoCoreParser>>> {
                                    RefCell::new(<Single<WithoutArgs<NoCoreParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<NoCoreParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<NoCoreParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<NoCoreParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<NoCoreParser>>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<NoCoreParser>> as
                                        crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<NoImplicitPreludeParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<NoImplicitPreludeParser>>> {
                                    RefCell::new(<Single<WithoutArgs<NoImplicitPreludeParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<NoImplicitPreludeParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<NoImplicitPreludeParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<NoImplicitPreludeParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<NoImplicitPreludeParser>>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<NoImplicitPreludeParser>>
                                        as
                                        crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<NoLinkParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<NoLinkParser>>> {
                                    RefCell::new(<Single<WithoutArgs<NoLinkParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<NoLinkParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<NoLinkParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<NoLinkParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<NoLinkParser>>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<NoLinkParser>> as
                                        crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<NoMainParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<NoMainParser>>> {
                                    RefCell::new(<Single<WithoutArgs<NoMainParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<NoMainParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<NoMainParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<NoMainParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<NoMainParser>>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<NoMainParser>> as
                                        crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<NoMangleParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<NoMangleParser>>> {
                                    RefCell::new(<Single<WithoutArgs<NoMangleParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<NoMangleParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<NoMangleParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<NoMangleParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<NoMangleParser>>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<NoMangleParser>> as
                                        crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<NoStdParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<NoStdParser>>> {
                                    RefCell::new(<Single<WithoutArgs<NoStdParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<NoStdParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<NoStdParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<NoStdParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<NoStdParser>>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<NoStdParser>> as
                                        crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<NonExhaustiveParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<NonExhaustiveParser>>> {
                                    RefCell::new(<Single<WithoutArgs<NonExhaustiveParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<NonExhaustiveParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<NonExhaustiveParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<NonExhaustiveParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<NonExhaustiveParser>>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<NonExhaustiveParser>>
                                        as
                                        crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<PanicRuntimeParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<PanicRuntimeParser>>> {
                                    RefCell::new(<Single<WithoutArgs<PanicRuntimeParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<PanicRuntimeParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<PanicRuntimeParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<PanicRuntimeParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<PanicRuntimeParser>>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<PanicRuntimeParser>> as
                                        crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<ParenSugarParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<ParenSugarParser>>> {
                                    RefCell::new(<Single<WithoutArgs<ParenSugarParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<ParenSugarParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<ParenSugarParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<ParenSugarParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<ParenSugarParser>>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<ParenSugarParser>> as
                                        crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<PassByValueParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<PassByValueParser>>> {
                                    RefCell::new(<Single<WithoutArgs<PassByValueParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<PassByValueParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<PassByValueParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<PassByValueParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<PassByValueParser>>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<PassByValueParser>> as
                                        crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<PinV2Parser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<PinV2Parser>>> {
                                    RefCell::new(<Single<WithoutArgs<PinV2Parser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<PinV2Parser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<PinV2Parser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<PinV2Parser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<PinV2Parser>>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<PinV2Parser>> as
                                        crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<PointeeParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<PointeeParser>>> {
                                    RefCell::new(<Single<WithoutArgs<PointeeParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<PointeeParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<PointeeParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<PointeeParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<PointeeParser>>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<PointeeParser>> as
                                        crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<ProcMacroAttributeParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<ProcMacroAttributeParser>>> {
                                    RefCell::new(<Single<WithoutArgs<ProcMacroAttributeParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<ProcMacroAttributeParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<ProcMacroAttributeParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<ProcMacroAttributeParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<ProcMacroAttributeParser>>>::ATTRIBUTES
                            {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<ProcMacroAttributeParser>>
                                        as
                                        crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<ProcMacroParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<ProcMacroParser>>> {
                                    RefCell::new(<Single<WithoutArgs<ProcMacroParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<ProcMacroParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<ProcMacroParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<ProcMacroParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<ProcMacroParser>>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<ProcMacroParser>> as
                                        crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<ProfilerRuntimeParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<ProfilerRuntimeParser>>> {
                                    RefCell::new(<Single<WithoutArgs<ProfilerRuntimeParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<ProfilerRuntimeParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<ProfilerRuntimeParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<ProfilerRuntimeParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<ProfilerRuntimeParser>>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<ProfilerRuntimeParser>>
                                        as
                                        crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<PubTransparentParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<PubTransparentParser>>> {
                                    RefCell::new(<Single<WithoutArgs<PubTransparentParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<PubTransparentParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<PubTransparentParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<PubTransparentParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<PubTransparentParser>>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<PubTransparentParser>>
                                        as
                                        crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcAllocatorParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<RustcAllocatorParser>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcAllocatorParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcAllocatorParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcAllocatorParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcAllocatorParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<RustcAllocatorParser>>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<RustcAllocatorParser>>
                                        as
                                        crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcAllocatorZeroedParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    ->
                                        RefCell<Single<WithoutArgs<RustcAllocatorZeroedParser>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcAllocatorZeroedParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcAllocatorZeroedParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcAllocatorZeroedParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcAllocatorZeroedParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<RustcAllocatorZeroedParser>>>::ATTRIBUTES
                            {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<RustcAllocatorZeroedParser>>
                                        as
                                        crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcCoherenceIsCoreParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    ->
                                        RefCell<Single<WithoutArgs<RustcCoherenceIsCoreParser>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcCoherenceIsCoreParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcCoherenceIsCoreParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcCoherenceIsCoreParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcCoherenceIsCoreParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<RustcCoherenceIsCoreParser>>>::ATTRIBUTES
                            {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<RustcCoherenceIsCoreParser>>
                                        as
                                        crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcDeallocatorParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<RustcDeallocatorParser>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcDeallocatorParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcDeallocatorParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcDeallocatorParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcDeallocatorParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<RustcDeallocatorParser>>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<RustcDeallocatorParser>>
                                        as
                                        crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcDumpDefParents>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<RustcDumpDefParents>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcDumpDefParents>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcDumpDefParents>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcDumpDefParents>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcDumpDefParents>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<RustcDumpDefParents>>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<RustcDumpDefParents>>
                                        as
                                        crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcDumpItemBounds>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<RustcDumpItemBounds>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcDumpItemBounds>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcDumpItemBounds>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcDumpItemBounds>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcDumpItemBounds>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<RustcDumpItemBounds>>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<RustcDumpItemBounds>>
                                        as
                                        crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcDumpPredicates>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<RustcDumpPredicates>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcDumpPredicates>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcDumpPredicates>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcDumpPredicates>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcDumpPredicates>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<RustcDumpPredicates>>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<RustcDumpPredicates>>
                                        as
                                        crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcDumpUserArgs>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<RustcDumpUserArgs>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcDumpUserArgs>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcDumpUserArgs>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcDumpUserArgs>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcDumpUserArgs>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<RustcDumpUserArgs>>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<RustcDumpUserArgs>> as
                                        crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcDumpVtable>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<RustcDumpVtable>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcDumpVtable>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcDumpVtable>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcDumpVtable>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcDumpVtable>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<RustcDumpVtable>>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<RustcDumpVtable>> as
                                        crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcHasIncoherentInherentImplsParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    ->
                                        RefCell<Single<WithoutArgs<RustcHasIncoherentInherentImplsParser>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcHasIncoherentInherentImplsParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcHasIncoherentInherentImplsParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcHasIncoherentInherentImplsParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcHasIncoherentInherentImplsParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<RustcHasIncoherentInherentImplsParser>>>::ATTRIBUTES
                            {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<RustcHasIncoherentInherentImplsParser>>
                                        as
                                        crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcLintOptTyParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<RustcLintOptTyParser>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcLintOptTyParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcLintOptTyParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcLintOptTyParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcLintOptTyParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<RustcLintOptTyParser>>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<RustcLintOptTyParser>>
                                        as
                                        crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcLintQueryInstabilityParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    ->
                                        RefCell<Single<WithoutArgs<RustcLintQueryInstabilityParser>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcLintQueryInstabilityParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcLintQueryInstabilityParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcLintQueryInstabilityParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcLintQueryInstabilityParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<RustcLintQueryInstabilityParser>>>::ATTRIBUTES
                            {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<RustcLintQueryInstabilityParser>>
                                        as
                                        crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcLintUntrackedQueryInformationParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    ->
                                        RefCell<Single<WithoutArgs<RustcLintUntrackedQueryInformationParser>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcLintUntrackedQueryInformationParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcLintUntrackedQueryInformationParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcLintUntrackedQueryInformationParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcLintUntrackedQueryInformationParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<RustcLintUntrackedQueryInformationParser>>>::ATTRIBUTES
                            {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<RustcLintUntrackedQueryInformationParser>>
                                        as
                                        crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcMainParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<RustcMainParser>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcMainParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcMainParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcMainParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcMainParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<RustcMainParser>>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<RustcMainParser>> as
                                        crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcNeverReturnsNullPointerParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    ->
                                        RefCell<Single<WithoutArgs<RustcNeverReturnsNullPointerParser>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcNeverReturnsNullPointerParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcNeverReturnsNullPointerParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcNeverReturnsNullPointerParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcNeverReturnsNullPointerParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<RustcNeverReturnsNullPointerParser>>>::ATTRIBUTES
                            {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<RustcNeverReturnsNullPointerParser>>
                                        as
                                        crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcNoImplicitAutorefsParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    ->
                                        RefCell<Single<WithoutArgs<RustcNoImplicitAutorefsParser>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcNoImplicitAutorefsParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcNoImplicitAutorefsParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcNoImplicitAutorefsParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcNoImplicitAutorefsParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<RustcNoImplicitAutorefsParser>>>::ATTRIBUTES
                            {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<RustcNoImplicitAutorefsParser>>
                                        as
                                        crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcNonConstTraitMethodParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    ->
                                        RefCell<Single<WithoutArgs<RustcNonConstTraitMethodParser>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcNonConstTraitMethodParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcNonConstTraitMethodParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcNonConstTraitMethodParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcNonConstTraitMethodParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<RustcNonConstTraitMethodParser>>>::ATTRIBUTES
                            {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<RustcNonConstTraitMethodParser>>
                                        as
                                        crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcNounwindParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<RustcNounwindParser>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcNounwindParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcNounwindParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcNounwindParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcNounwindParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<RustcNounwindParser>>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<RustcNounwindParser>>
                                        as
                                        crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcOffloadKernelParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<RustcOffloadKernelParser>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcOffloadKernelParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcOffloadKernelParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcOffloadKernelParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcOffloadKernelParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<RustcOffloadKernelParser>>>::ATTRIBUTES
                            {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<RustcOffloadKernelParser>>
                                        as
                                        crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcPassIndirectlyInNonRusticAbisParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    ->
                                        RefCell<Single<WithoutArgs<RustcPassIndirectlyInNonRusticAbisParser>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcPassIndirectlyInNonRusticAbisParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcPassIndirectlyInNonRusticAbisParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcPassIndirectlyInNonRusticAbisParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcPassIndirectlyInNonRusticAbisParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<RustcPassIndirectlyInNonRusticAbisParser>>>::ATTRIBUTES
                            {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<RustcPassIndirectlyInNonRusticAbisParser>>
                                        as
                                        crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcReallocatorParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<RustcReallocatorParser>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcReallocatorParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcReallocatorParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcReallocatorParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcReallocatorParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<RustcReallocatorParser>>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<RustcReallocatorParser>>
                                        as
                                        crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcShouldNotBeCalledOnConstItems>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    ->
                                        RefCell<Single<WithoutArgs<RustcShouldNotBeCalledOnConstItems>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcShouldNotBeCalledOnConstItems>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcShouldNotBeCalledOnConstItems>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcShouldNotBeCalledOnConstItems>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcShouldNotBeCalledOnConstItems>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<RustcShouldNotBeCalledOnConstItems>>>::ATTRIBUTES
                            {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<RustcShouldNotBeCalledOnConstItems>>
                                        as
                                        crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcVarianceOfOpaquesParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    ->
                                        RefCell<Single<WithoutArgs<RustcVarianceOfOpaquesParser>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcVarianceOfOpaquesParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcVarianceOfOpaquesParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcVarianceOfOpaquesParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcVarianceOfOpaquesParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<RustcVarianceOfOpaquesParser>>>::ATTRIBUTES
                            {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<RustcVarianceOfOpaquesParser>>
                                        as
                                        crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcVarianceParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<RustcVarianceParser>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcVarianceParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcVarianceParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcVarianceParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcVarianceParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<RustcVarianceParser>>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<RustcVarianceParser>>
                                        as
                                        crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<SpecializationTraitParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<SpecializationTraitParser>>> {
                                    RefCell::new(<Single<WithoutArgs<SpecializationTraitParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<SpecializationTraitParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<SpecializationTraitParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<SpecializationTraitParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<SpecializationTraitParser>>>::ATTRIBUTES
                            {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<SpecializationTraitParser>>
                                        as
                                        crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<StdInternalSymbolParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<StdInternalSymbolParser>>> {
                                    RefCell::new(<Single<WithoutArgs<StdInternalSymbolParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<StdInternalSymbolParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<StdInternalSymbolParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<StdInternalSymbolParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<StdInternalSymbolParser>>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<StdInternalSymbolParser>>
                                        as
                                        crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<ThreadLocalParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<ThreadLocalParser>>> {
                                    RefCell::new(<Single<WithoutArgs<ThreadLocalParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<ThreadLocalParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<ThreadLocalParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<ThreadLocalParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<ThreadLocalParser>>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<ThreadLocalParser>> as
                                        crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<TrackCallerParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<TrackCallerParser>>> {
                                    RefCell::new(<Single<WithoutArgs<TrackCallerParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<TrackCallerParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<TrackCallerParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<TrackCallerParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<TrackCallerParser>>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<TrackCallerParser>> as
                                        crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<TypeConstParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<TypeConstParser>>> {
                                    RefCell::new(<Single<WithoutArgs<TypeConstParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<TypeConstParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<TypeConstParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<TypeConstParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<TypeConstParser>>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<TypeConstParser>> as
                                        crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<UnsafeSpecializationMarkerParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    ->
                                        RefCell<Single<WithoutArgs<UnsafeSpecializationMarkerParser>>> {
                                    RefCell::new(<Single<WithoutArgs<UnsafeSpecializationMarkerParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<UnsafeSpecializationMarkerParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<UnsafeSpecializationMarkerParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<UnsafeSpecializationMarkerParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<UnsafeSpecializationMarkerParser>>>::ATTRIBUTES
                            {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<UnsafeSpecializationMarkerParser>>
                                        as
                                        crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    GroupTypeInner { accepters }
                });
}
mod late {
    use super::*;
    type Combine<T> = super::Combine<T, Late>;
    type Single<T> = super::Single<T, Late>;
    type WithoutArgs<T> = super::WithoutArgs<T, Late>;
    pub(crate) static ATTRIBUTE_PARSERS: GroupType<Late> =
        LazyLock::new(||
                {
                    let mut accepters =
                        BTreeMap::<_, Vec<GroupTypeInnerAccept<Late>>>::new();
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<AlignParser>> =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn() -> RefCell<AlignParser> {
                                    RefCell::new(<AlignParser>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<AlignParser>>() {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<AlignParser>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<AlignParser>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in <AlignParser>::ATTRIBUTES
                            {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <AlignParser as
                                        crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<AlignStaticParser>> =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<AlignStaticParser> {
                                    RefCell::new(<AlignStaticParser>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<AlignStaticParser>>() {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<AlignStaticParser>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<AlignStaticParser>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <AlignStaticParser>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <AlignStaticParser as
                                        crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<BodyStabilityParser>> =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<BodyStabilityParser> {
                                    RefCell::new(<BodyStabilityParser>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<BodyStabilityParser>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<BodyStabilityParser>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<BodyStabilityParser>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <BodyStabilityParser>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <BodyStabilityParser as
                                        crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<ConfusablesParser>> =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<ConfusablesParser> {
                                    RefCell::new(<ConfusablesParser>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<ConfusablesParser>>() {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<ConfusablesParser>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<ConfusablesParser>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <ConfusablesParser>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <ConfusablesParser as
                                        crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<ConstStabilityParser>> =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<ConstStabilityParser> {
                                    RefCell::new(<ConstStabilityParser>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<ConstStabilityParser>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<ConstStabilityParser>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<ConstStabilityParser>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <ConstStabilityParser>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <ConstStabilityParser as
                                        crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<DocParser>> =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn() -> RefCell<DocParser> {
                                    RefCell::new(<DocParser>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<DocParser>>() {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<DocParser>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<DocParser>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in <DocParser>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <DocParser as
                                        crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<MacroUseParser>> =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<MacroUseParser> {
                                    RefCell::new(<MacroUseParser>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<MacroUseParser>>() {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<MacroUseParser>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<MacroUseParser>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <MacroUseParser>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <MacroUseParser as
                                        crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<NakedParser>> =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn() -> RefCell<NakedParser> {
                                    RefCell::new(<NakedParser>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<NakedParser>>() {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<NakedParser>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<NakedParser>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in <NakedParser>::ATTRIBUTES
                            {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <NakedParser as
                                        crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<StabilityParser>> =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<StabilityParser> {
                                    RefCell::new(<StabilityParser>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<StabilityParser>>() {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<StabilityParser>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<StabilityParser>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <StabilityParser>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <StabilityParser as
                                        crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<UsedParser>> =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn() -> RefCell<UsedParser> {
                                    RefCell::new(<UsedParser>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<UsedParser>>() {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<UsedParser>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<UsedParser>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in <UsedParser>::ATTRIBUTES
                            {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <UsedParser as
                                        crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Combine<AllowConstFnUnstableParser>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Combine<AllowConstFnUnstableParser>> {
                                    RefCell::new(<Combine<AllowConstFnUnstableParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Combine<AllowConstFnUnstableParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Combine<AllowConstFnUnstableParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Combine<AllowConstFnUnstableParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Combine<AllowConstFnUnstableParser>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Combine<AllowConstFnUnstableParser> as
                                        crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Combine<AllowInternalUnstableParser>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Combine<AllowInternalUnstableParser>> {
                                    RefCell::new(<Combine<AllowInternalUnstableParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Combine<AllowInternalUnstableParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Combine<AllowInternalUnstableParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Combine<AllowInternalUnstableParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Combine<AllowInternalUnstableParser>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Combine<AllowInternalUnstableParser> as
                                        crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Combine<CrateTypeParser>>> =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Combine<CrateTypeParser>> {
                                    RefCell::new(<Combine<CrateTypeParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Combine<CrateTypeParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Combine<CrateTypeParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Combine<CrateTypeParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Combine<CrateTypeParser>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Combine<CrateTypeParser> as
                                        crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Combine<DebuggerViualizerParser>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Combine<DebuggerViualizerParser>> {
                                    RefCell::new(<Combine<DebuggerViualizerParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Combine<DebuggerViualizerParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Combine<DebuggerViualizerParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Combine<DebuggerViualizerParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Combine<DebuggerViualizerParser>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Combine<DebuggerViualizerParser> as
                                        crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Combine<ForceTargetFeatureParser>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Combine<ForceTargetFeatureParser>> {
                                    RefCell::new(<Combine<ForceTargetFeatureParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Combine<ForceTargetFeatureParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Combine<ForceTargetFeatureParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Combine<ForceTargetFeatureParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Combine<ForceTargetFeatureParser>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Combine<ForceTargetFeatureParser> as
                                        crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Combine<LinkParser>>> =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Combine<LinkParser>> {
                                    RefCell::new(<Combine<LinkParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Combine<LinkParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Combine<LinkParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Combine<LinkParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Combine<LinkParser>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Combine<LinkParser> as
                                        crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Combine<ReprParser>>> =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Combine<ReprParser>> {
                                    RefCell::new(<Combine<ReprParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Combine<ReprParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Combine<ReprParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Combine<ReprParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Combine<ReprParser>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Combine<ReprParser> as
                                        crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Combine<RustcLayoutParser>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Combine<RustcLayoutParser>> {
                                    RefCell::new(<Combine<RustcLayoutParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Combine<RustcLayoutParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Combine<RustcLayoutParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Combine<RustcLayoutParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Combine<RustcLayoutParser>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Combine<RustcLayoutParser> as
                                        crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Combine<TargetFeatureParser>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Combine<TargetFeatureParser>> {
                                    RefCell::new(<Combine<TargetFeatureParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Combine<TargetFeatureParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Combine<TargetFeatureParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Combine<TargetFeatureParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Combine<TargetFeatureParser>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Combine<TargetFeatureParser> as
                                        crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Combine<UnstableFeatureBoundParser>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Combine<UnstableFeatureBoundParser>> {
                                    RefCell::new(<Combine<UnstableFeatureBoundParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Combine<UnstableFeatureBoundParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Combine<UnstableFeatureBoundParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Combine<UnstableFeatureBoundParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Combine<UnstableFeatureBoundParser>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Combine<UnstableFeatureBoundParser> as
                                        crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<CfiEncodingParser>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<CfiEncodingParser>> {
                                    RefCell::new(<Single<CfiEncodingParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<CfiEncodingParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<CfiEncodingParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<CfiEncodingParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<CfiEncodingParser>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<CfiEncodingParser> as
                                        crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<CollapseDebugInfoParser>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<CollapseDebugInfoParser>> {
                                    RefCell::new(<Single<CollapseDebugInfoParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<CollapseDebugInfoParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<CollapseDebugInfoParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<CollapseDebugInfoParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<CollapseDebugInfoParser>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<CollapseDebugInfoParser> as
                                        crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<CoverageParser>>> =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<CoverageParser>> {
                                    RefCell::new(<Single<CoverageParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<CoverageParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<CoverageParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<CoverageParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<CoverageParser>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<CoverageParser> as
                                        crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<CrateNameParser>>> =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<CrateNameParser>> {
                                    RefCell::new(<Single<CrateNameParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<CrateNameParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<CrateNameParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<CrateNameParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<CrateNameParser>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<CrateNameParser> as
                                        crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<CustomMirParser>>> =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<CustomMirParser>> {
                                    RefCell::new(<Single<CustomMirParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<CustomMirParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<CustomMirParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<CustomMirParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<CustomMirParser>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<CustomMirParser> as
                                        crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<DeprecationParser>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<DeprecationParser>> {
                                    RefCell::new(<Single<DeprecationParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<DeprecationParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<DeprecationParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<DeprecationParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<DeprecationParser>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<DeprecationParser> as
                                        crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<DoNotRecommendParser>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<DoNotRecommendParser>> {
                                    RefCell::new(<Single<DoNotRecommendParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<DoNotRecommendParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<DoNotRecommendParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<DoNotRecommendParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<DoNotRecommendParser>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<DoNotRecommendParser> as
                                        crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<DummyParser>>> =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<DummyParser>> {
                                    RefCell::new(<Single<DummyParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<DummyParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<DummyParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<DummyParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<DummyParser>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<DummyParser> as
                                        crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<ExportNameParser>>> =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<ExportNameParser>> {
                                    RefCell::new(<Single<ExportNameParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<ExportNameParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<ExportNameParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<ExportNameParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<ExportNameParser>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<ExportNameParser> as
                                        crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<IgnoreParser>>> =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<IgnoreParser>> {
                                    RefCell::new(<Single<IgnoreParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<IgnoreParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<IgnoreParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<IgnoreParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<IgnoreParser>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<IgnoreParser> as
                                        crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<InlineParser>>> =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<InlineParser>> {
                                    RefCell::new(<Single<InlineParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<InlineParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<InlineParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<InlineParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<InlineParser>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<InlineParser> as
                                        crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<InstructionSetParser>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<InstructionSetParser>> {
                                    RefCell::new(<Single<InstructionSetParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<InstructionSetParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<InstructionSetParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<InstructionSetParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<InstructionSetParser>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<InstructionSetParser> as
                                        crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<LinkNameParser>>> =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<LinkNameParser>> {
                                    RefCell::new(<Single<LinkNameParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<LinkNameParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<LinkNameParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<LinkNameParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<LinkNameParser>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<LinkNameParser> as
                                        crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<LinkOrdinalParser>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<LinkOrdinalParser>> {
                                    RefCell::new(<Single<LinkOrdinalParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<LinkOrdinalParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<LinkOrdinalParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<LinkOrdinalParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<LinkOrdinalParser>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<LinkOrdinalParser> as
                                        crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<LinkSectionParser>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<LinkSectionParser>> {
                                    RefCell::new(<Single<LinkSectionParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<LinkSectionParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<LinkSectionParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<LinkSectionParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<LinkSectionParser>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<LinkSectionParser> as
                                        crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<LinkageParser>>> =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<LinkageParser>> {
                                    RefCell::new(<Single<LinkageParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<LinkageParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<LinkageParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<LinkageParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<LinkageParser>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<LinkageParser> as
                                        crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<MacroExportParser>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<MacroExportParser>> {
                                    RefCell::new(<Single<MacroExportParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<MacroExportParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<MacroExportParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<MacroExportParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<MacroExportParser>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<MacroExportParser> as
                                        crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<MoveSizeLimitParser>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<MoveSizeLimitParser>> {
                                    RefCell::new(<Single<MoveSizeLimitParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<MoveSizeLimitParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<MoveSizeLimitParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<MoveSizeLimitParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<MoveSizeLimitParser>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<MoveSizeLimitParser> as
                                        crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<MustNotSuspendParser>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<MustNotSuspendParser>> {
                                    RefCell::new(<Single<MustNotSuspendParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<MustNotSuspendParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<MustNotSuspendParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<MustNotSuspendParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<MustNotSuspendParser>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<MustNotSuspendParser> as
                                        crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<MustUseParser>>> =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<MustUseParser>> {
                                    RefCell::new(<Single<MustUseParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<MustUseParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<MustUseParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<MustUseParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<MustUseParser>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<MustUseParser> as
                                        crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<ObjcClassParser>>> =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<ObjcClassParser>> {
                                    RefCell::new(<Single<ObjcClassParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<ObjcClassParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<ObjcClassParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<ObjcClassParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<ObjcClassParser>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<ObjcClassParser> as
                                        crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<ObjcSelectorParser>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<ObjcSelectorParser>> {
                                    RefCell::new(<Single<ObjcSelectorParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<ObjcSelectorParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<ObjcSelectorParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<ObjcSelectorParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<ObjcSelectorParser>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<ObjcSelectorParser> as
                                        crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<OptimizeParser>>> =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<OptimizeParser>> {
                                    RefCell::new(<Single<OptimizeParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<OptimizeParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<OptimizeParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<OptimizeParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<OptimizeParser>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<OptimizeParser> as
                                        crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<PatchableFunctionEntryParser>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<PatchableFunctionEntryParser>> {
                                    RefCell::new(<Single<PatchableFunctionEntryParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<PatchableFunctionEntryParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<PatchableFunctionEntryParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<PatchableFunctionEntryParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<PatchableFunctionEntryParser>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<PatchableFunctionEntryParser> as
                                        crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<PathAttributeParser>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<PathAttributeParser>> {
                                    RefCell::new(<Single<PathAttributeParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<PathAttributeParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<PathAttributeParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<PathAttributeParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<PathAttributeParser>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<PathAttributeParser> as
                                        crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<PatternComplexityLimitParser>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<PatternComplexityLimitParser>> {
                                    RefCell::new(<Single<PatternComplexityLimitParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<PatternComplexityLimitParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<PatternComplexityLimitParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<PatternComplexityLimitParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<PatternComplexityLimitParser>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<PatternComplexityLimitParser> as
                                        crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<ProcMacroDeriveParser>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<ProcMacroDeriveParser>> {
                                    RefCell::new(<Single<ProcMacroDeriveParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<ProcMacroDeriveParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<ProcMacroDeriveParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<ProcMacroDeriveParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<ProcMacroDeriveParser>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<ProcMacroDeriveParser> as
                                        crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<RecursionLimitParser>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<RecursionLimitParser>> {
                                    RefCell::new(<Single<RecursionLimitParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<RecursionLimitParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<RecursionLimitParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<RecursionLimitParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<RecursionLimitParser>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<RecursionLimitParser> as
                                        crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<RustcAllocatorZeroedVariantParser>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<RustcAllocatorZeroedVariantParser>> {
                                    RefCell::new(<Single<RustcAllocatorZeroedVariantParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<RustcAllocatorZeroedVariantParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<RustcAllocatorZeroedVariantParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<RustcAllocatorZeroedVariantParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<RustcAllocatorZeroedVariantParser>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<RustcAllocatorZeroedVariantParser>
                                        as
                                        crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<RustcBuiltinMacroParser>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<RustcBuiltinMacroParser>> {
                                    RefCell::new(<Single<RustcBuiltinMacroParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<RustcBuiltinMacroParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<RustcBuiltinMacroParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<RustcBuiltinMacroParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<RustcBuiltinMacroParser>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<RustcBuiltinMacroParser> as
                                        crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<RustcForceInlineParser>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<RustcForceInlineParser>> {
                                    RefCell::new(<Single<RustcForceInlineParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<RustcForceInlineParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<RustcForceInlineParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<RustcForceInlineParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<RustcForceInlineParser>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<RustcForceInlineParser> as
                                        crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<RustcLayoutScalarValidRangeEndParser>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<RustcLayoutScalarValidRangeEndParser>> {
                                    RefCell::new(<Single<RustcLayoutScalarValidRangeEndParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<RustcLayoutScalarValidRangeEndParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<RustcLayoutScalarValidRangeEndParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<RustcLayoutScalarValidRangeEndParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<RustcLayoutScalarValidRangeEndParser>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<RustcLayoutScalarValidRangeEndParser>
                                        as
                                        crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<RustcLayoutScalarValidRangeStartParser>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<RustcLayoutScalarValidRangeStartParser>> {
                                    RefCell::new(<Single<RustcLayoutScalarValidRangeStartParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<RustcLayoutScalarValidRangeStartParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<RustcLayoutScalarValidRangeStartParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<RustcLayoutScalarValidRangeStartParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<RustcLayoutScalarValidRangeStartParser>>::ATTRIBUTES
                            {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<RustcLayoutScalarValidRangeStartParser>
                                        as
                                        crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<RustcLegacyConstGenericsParser>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<RustcLegacyConstGenericsParser>> {
                                    RefCell::new(<Single<RustcLegacyConstGenericsParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<RustcLegacyConstGenericsParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<RustcLegacyConstGenericsParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<RustcLegacyConstGenericsParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<RustcLegacyConstGenericsParser>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<RustcLegacyConstGenericsParser> as
                                        crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<RustcLintOptDenyFieldAccessParser>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<RustcLintOptDenyFieldAccessParser>> {
                                    RefCell::new(<Single<RustcLintOptDenyFieldAccessParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<RustcLintOptDenyFieldAccessParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<RustcLintOptDenyFieldAccessParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<RustcLintOptDenyFieldAccessParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<RustcLintOptDenyFieldAccessParser>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<RustcLintOptDenyFieldAccessParser>
                                        as
                                        crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<RustcMustImplementOneOfParser>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<RustcMustImplementOneOfParser>> {
                                    RefCell::new(<Single<RustcMustImplementOneOfParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<RustcMustImplementOneOfParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<RustcMustImplementOneOfParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<RustcMustImplementOneOfParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<RustcMustImplementOneOfParser>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<RustcMustImplementOneOfParser> as
                                        crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<RustcObjectLifetimeDefaultParser>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<RustcObjectLifetimeDefaultParser>> {
                                    RefCell::new(<Single<RustcObjectLifetimeDefaultParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<RustcObjectLifetimeDefaultParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<RustcObjectLifetimeDefaultParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<RustcObjectLifetimeDefaultParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<RustcObjectLifetimeDefaultParser>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<RustcObjectLifetimeDefaultParser>
                                        as
                                        crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<RustcScalableVectorParser>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<RustcScalableVectorParser>> {
                                    RefCell::new(<Single<RustcScalableVectorParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<RustcScalableVectorParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<RustcScalableVectorParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<RustcScalableVectorParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<RustcScalableVectorParser>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<RustcScalableVectorParser> as
                                        crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<RustcSimdMonomorphizeLaneLimitParser>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<RustcSimdMonomorphizeLaneLimitParser>> {
                                    RefCell::new(<Single<RustcSimdMonomorphizeLaneLimitParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<RustcSimdMonomorphizeLaneLimitParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<RustcSimdMonomorphizeLaneLimitParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<RustcSimdMonomorphizeLaneLimitParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<RustcSimdMonomorphizeLaneLimitParser>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<RustcSimdMonomorphizeLaneLimitParser>
                                        as
                                        crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<SanitizeParser>>> =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<SanitizeParser>> {
                                    RefCell::new(<Single<SanitizeParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<SanitizeParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<SanitizeParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<SanitizeParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<SanitizeParser>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<SanitizeParser> as
                                        crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<ShouldPanicParser>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<ShouldPanicParser>> {
                                    RefCell::new(<Single<ShouldPanicParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<ShouldPanicParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<ShouldPanicParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<ShouldPanicParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<ShouldPanicParser>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<ShouldPanicParser> as
                                        crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<SkipDuringMethodDispatchParser>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<SkipDuringMethodDispatchParser>> {
                                    RefCell::new(<Single<SkipDuringMethodDispatchParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<SkipDuringMethodDispatchParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<SkipDuringMethodDispatchParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<SkipDuringMethodDispatchParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<SkipDuringMethodDispatchParser>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<SkipDuringMethodDispatchParser> as
                                        crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<TransparencyParser>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<TransparencyParser>> {
                                    RefCell::new(<Single<TransparencyParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<TransparencyParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<TransparencyParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<TransparencyParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<TransparencyParser>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<TransparencyParser> as
                                        crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<TypeLengthLimitParser>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<TypeLengthLimitParser>> {
                                    RefCell::new(<Single<TypeLengthLimitParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<TypeLengthLimitParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<TypeLengthLimitParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<TypeLengthLimitParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<TypeLengthLimitParser>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<TypeLengthLimitParser> as
                                        crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WindowsSubsystemParser>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WindowsSubsystemParser>> {
                                    RefCell::new(<Single<WindowsSubsystemParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WindowsSubsystemParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WindowsSubsystemParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WindowsSubsystemParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WindowsSubsystemParser>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WindowsSubsystemParser> as
                                        crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<AllowIncoherentImplParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<AllowIncoherentImplParser>>> {
                                    RefCell::new(<Single<WithoutArgs<AllowIncoherentImplParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<AllowIncoherentImplParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<AllowIncoherentImplParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<AllowIncoherentImplParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<AllowIncoherentImplParser>>>::ATTRIBUTES
                            {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<AllowIncoherentImplParser>>
                                        as
                                        crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<AllowInternalUnsafeParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<AllowInternalUnsafeParser>>> {
                                    RefCell::new(<Single<WithoutArgs<AllowInternalUnsafeParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<AllowInternalUnsafeParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<AllowInternalUnsafeParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<AllowInternalUnsafeParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<AllowInternalUnsafeParser>>>::ATTRIBUTES
                            {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<AllowInternalUnsafeParser>>
                                        as
                                        crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<AsPtrParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<AsPtrParser>>> {
                                    RefCell::new(<Single<WithoutArgs<AsPtrParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<AsPtrParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<AsPtrParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<AsPtrParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<AsPtrParser>>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<AsPtrParser>> as
                                        crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<AutomaticallyDerivedParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    ->
                                        RefCell<Single<WithoutArgs<AutomaticallyDerivedParser>>> {
                                    RefCell::new(<Single<WithoutArgs<AutomaticallyDerivedParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<AutomaticallyDerivedParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<AutomaticallyDerivedParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<AutomaticallyDerivedParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<AutomaticallyDerivedParser>>>::ATTRIBUTES
                            {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<AutomaticallyDerivedParser>>
                                        as
                                        crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<CoinductiveParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<CoinductiveParser>>> {
                                    RefCell::new(<Single<WithoutArgs<CoinductiveParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<CoinductiveParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<CoinductiveParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<CoinductiveParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<CoinductiveParser>>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<CoinductiveParser>> as
                                        crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<ColdParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<ColdParser>>> {
                                    RefCell::new(<Single<WithoutArgs<ColdParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<ColdParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<ColdParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<ColdParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<ColdParser>>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<ColdParser>> as
                                        crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<CompilerBuiltinsParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<CompilerBuiltinsParser>>> {
                                    RefCell::new(<Single<WithoutArgs<CompilerBuiltinsParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<CompilerBuiltinsParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<CompilerBuiltinsParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<CompilerBuiltinsParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<CompilerBuiltinsParser>>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<CompilerBuiltinsParser>>
                                        as
                                        crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<ConstContinueParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<ConstContinueParser>>> {
                                    RefCell::new(<Single<WithoutArgs<ConstContinueParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<ConstContinueParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<ConstContinueParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<ConstContinueParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<ConstContinueParser>>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<ConstContinueParser>>
                                        as
                                        crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<ConstStabilityIndirectParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    ->
                                        RefCell<Single<WithoutArgs<ConstStabilityIndirectParser>>> {
                                    RefCell::new(<Single<WithoutArgs<ConstStabilityIndirectParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<ConstStabilityIndirectParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<ConstStabilityIndirectParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<ConstStabilityIndirectParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<ConstStabilityIndirectParser>>>::ATTRIBUTES
                            {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<ConstStabilityIndirectParser>>
                                        as
                                        crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<CoroutineParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<CoroutineParser>>> {
                                    RefCell::new(<Single<WithoutArgs<CoroutineParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<CoroutineParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<CoroutineParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<CoroutineParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<CoroutineParser>>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<CoroutineParser>> as
                                        crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<DenyExplicitImplParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<DenyExplicitImplParser>>> {
                                    RefCell::new(<Single<WithoutArgs<DenyExplicitImplParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<DenyExplicitImplParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<DenyExplicitImplParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<DenyExplicitImplParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<DenyExplicitImplParser>>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<DenyExplicitImplParser>>
                                        as
                                        crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<DynIncompatibleTraitParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    ->
                                        RefCell<Single<WithoutArgs<DynIncompatibleTraitParser>>> {
                                    RefCell::new(<Single<WithoutArgs<DynIncompatibleTraitParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<DynIncompatibleTraitParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<DynIncompatibleTraitParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<DynIncompatibleTraitParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<DynIncompatibleTraitParser>>>::ATTRIBUTES
                            {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<DynIncompatibleTraitParser>>
                                        as
                                        crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<EiiForeignItemParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<EiiForeignItemParser>>> {
                                    RefCell::new(<Single<WithoutArgs<EiiForeignItemParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<EiiForeignItemParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<EiiForeignItemParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<EiiForeignItemParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<EiiForeignItemParser>>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<EiiForeignItemParser>>
                                        as
                                        crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<ExportStableParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<ExportStableParser>>> {
                                    RefCell::new(<Single<WithoutArgs<ExportStableParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<ExportStableParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<ExportStableParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<ExportStableParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<ExportStableParser>>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<ExportStableParser>> as
                                        crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<FfiConstParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<FfiConstParser>>> {
                                    RefCell::new(<Single<WithoutArgs<FfiConstParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<FfiConstParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<FfiConstParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<FfiConstParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<FfiConstParser>>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<FfiConstParser>> as
                                        crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<FfiPureParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<FfiPureParser>>> {
                                    RefCell::new(<Single<WithoutArgs<FfiPureParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<FfiPureParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<FfiPureParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<FfiPureParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<FfiPureParser>>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<FfiPureParser>> as
                                        crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<FundamentalParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<FundamentalParser>>> {
                                    RefCell::new(<Single<WithoutArgs<FundamentalParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<FundamentalParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<FundamentalParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<FundamentalParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<FundamentalParser>>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<FundamentalParser>> as
                                        crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<LoopMatchParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<LoopMatchParser>>> {
                                    RefCell::new(<Single<WithoutArgs<LoopMatchParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<LoopMatchParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<LoopMatchParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<LoopMatchParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<LoopMatchParser>>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<LoopMatchParser>> as
                                        crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<MacroEscapeParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<MacroEscapeParser>>> {
                                    RefCell::new(<Single<WithoutArgs<MacroEscapeParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<MacroEscapeParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<MacroEscapeParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<MacroEscapeParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<MacroEscapeParser>>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<MacroEscapeParser>> as
                                        crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<MarkerParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<MarkerParser>>> {
                                    RefCell::new(<Single<WithoutArgs<MarkerParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<MarkerParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<MarkerParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<MarkerParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<MarkerParser>>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<MarkerParser>> as
                                        crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<MayDangleParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<MayDangleParser>>> {
                                    RefCell::new(<Single<WithoutArgs<MayDangleParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<MayDangleParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<MayDangleParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<MayDangleParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<MayDangleParser>>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<MayDangleParser>> as
                                        crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<NeedsAllocatorParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<NeedsAllocatorParser>>> {
                                    RefCell::new(<Single<WithoutArgs<NeedsAllocatorParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<NeedsAllocatorParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<NeedsAllocatorParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<NeedsAllocatorParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<NeedsAllocatorParser>>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<NeedsAllocatorParser>>
                                        as
                                        crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<NeedsPanicRuntimeParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<NeedsPanicRuntimeParser>>> {
                                    RefCell::new(<Single<WithoutArgs<NeedsPanicRuntimeParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<NeedsPanicRuntimeParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<NeedsPanicRuntimeParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<NeedsPanicRuntimeParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<NeedsPanicRuntimeParser>>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<NeedsPanicRuntimeParser>>
                                        as
                                        crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<NoBuiltinsParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<NoBuiltinsParser>>> {
                                    RefCell::new(<Single<WithoutArgs<NoBuiltinsParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<NoBuiltinsParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<NoBuiltinsParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<NoBuiltinsParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<NoBuiltinsParser>>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<NoBuiltinsParser>> as
                                        crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<NoCoreParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<NoCoreParser>>> {
                                    RefCell::new(<Single<WithoutArgs<NoCoreParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<NoCoreParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<NoCoreParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<NoCoreParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<NoCoreParser>>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<NoCoreParser>> as
                                        crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<NoImplicitPreludeParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<NoImplicitPreludeParser>>> {
                                    RefCell::new(<Single<WithoutArgs<NoImplicitPreludeParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<NoImplicitPreludeParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<NoImplicitPreludeParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<NoImplicitPreludeParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<NoImplicitPreludeParser>>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<NoImplicitPreludeParser>>
                                        as
                                        crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<NoLinkParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<NoLinkParser>>> {
                                    RefCell::new(<Single<WithoutArgs<NoLinkParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<NoLinkParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<NoLinkParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<NoLinkParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<NoLinkParser>>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<NoLinkParser>> as
                                        crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<NoMainParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<NoMainParser>>> {
                                    RefCell::new(<Single<WithoutArgs<NoMainParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<NoMainParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<NoMainParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<NoMainParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<NoMainParser>>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<NoMainParser>> as
                                        crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<NoMangleParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<NoMangleParser>>> {
                                    RefCell::new(<Single<WithoutArgs<NoMangleParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<NoMangleParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<NoMangleParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<NoMangleParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<NoMangleParser>>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<NoMangleParser>> as
                                        crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<NoStdParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<NoStdParser>>> {
                                    RefCell::new(<Single<WithoutArgs<NoStdParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<NoStdParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<NoStdParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<NoStdParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<NoStdParser>>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<NoStdParser>> as
                                        crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<NonExhaustiveParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<NonExhaustiveParser>>> {
                                    RefCell::new(<Single<WithoutArgs<NonExhaustiveParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<NonExhaustiveParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<NonExhaustiveParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<NonExhaustiveParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<NonExhaustiveParser>>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<NonExhaustiveParser>>
                                        as
                                        crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<PanicRuntimeParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<PanicRuntimeParser>>> {
                                    RefCell::new(<Single<WithoutArgs<PanicRuntimeParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<PanicRuntimeParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<PanicRuntimeParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<PanicRuntimeParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<PanicRuntimeParser>>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<PanicRuntimeParser>> as
                                        crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<ParenSugarParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<ParenSugarParser>>> {
                                    RefCell::new(<Single<WithoutArgs<ParenSugarParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<ParenSugarParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<ParenSugarParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<ParenSugarParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<ParenSugarParser>>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<ParenSugarParser>> as
                                        crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<PassByValueParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<PassByValueParser>>> {
                                    RefCell::new(<Single<WithoutArgs<PassByValueParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<PassByValueParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<PassByValueParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<PassByValueParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<PassByValueParser>>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<PassByValueParser>> as
                                        crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<PinV2Parser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<PinV2Parser>>> {
                                    RefCell::new(<Single<WithoutArgs<PinV2Parser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<PinV2Parser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<PinV2Parser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<PinV2Parser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<PinV2Parser>>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<PinV2Parser>> as
                                        crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<PointeeParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<PointeeParser>>> {
                                    RefCell::new(<Single<WithoutArgs<PointeeParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<PointeeParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<PointeeParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<PointeeParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<PointeeParser>>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<PointeeParser>> as
                                        crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<ProcMacroAttributeParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<ProcMacroAttributeParser>>> {
                                    RefCell::new(<Single<WithoutArgs<ProcMacroAttributeParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<ProcMacroAttributeParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<ProcMacroAttributeParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<ProcMacroAttributeParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<ProcMacroAttributeParser>>>::ATTRIBUTES
                            {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<ProcMacroAttributeParser>>
                                        as
                                        crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<ProcMacroParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<ProcMacroParser>>> {
                                    RefCell::new(<Single<WithoutArgs<ProcMacroParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<ProcMacroParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<ProcMacroParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<ProcMacroParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<ProcMacroParser>>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<ProcMacroParser>> as
                                        crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<ProfilerRuntimeParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<ProfilerRuntimeParser>>> {
                                    RefCell::new(<Single<WithoutArgs<ProfilerRuntimeParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<ProfilerRuntimeParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<ProfilerRuntimeParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<ProfilerRuntimeParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<ProfilerRuntimeParser>>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<ProfilerRuntimeParser>>
                                        as
                                        crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<PubTransparentParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<PubTransparentParser>>> {
                                    RefCell::new(<Single<WithoutArgs<PubTransparentParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<PubTransparentParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<PubTransparentParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<PubTransparentParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<PubTransparentParser>>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<PubTransparentParser>>
                                        as
                                        crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcAllocatorParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<RustcAllocatorParser>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcAllocatorParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcAllocatorParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcAllocatorParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcAllocatorParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<RustcAllocatorParser>>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<RustcAllocatorParser>>
                                        as
                                        crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcAllocatorZeroedParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    ->
                                        RefCell<Single<WithoutArgs<RustcAllocatorZeroedParser>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcAllocatorZeroedParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcAllocatorZeroedParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcAllocatorZeroedParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcAllocatorZeroedParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<RustcAllocatorZeroedParser>>>::ATTRIBUTES
                            {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<RustcAllocatorZeroedParser>>
                                        as
                                        crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcCoherenceIsCoreParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    ->
                                        RefCell<Single<WithoutArgs<RustcCoherenceIsCoreParser>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcCoherenceIsCoreParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcCoherenceIsCoreParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcCoherenceIsCoreParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcCoherenceIsCoreParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<RustcCoherenceIsCoreParser>>>::ATTRIBUTES
                            {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<RustcCoherenceIsCoreParser>>
                                        as
                                        crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcDeallocatorParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<RustcDeallocatorParser>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcDeallocatorParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcDeallocatorParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcDeallocatorParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcDeallocatorParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<RustcDeallocatorParser>>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<RustcDeallocatorParser>>
                                        as
                                        crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcDumpDefParents>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<RustcDumpDefParents>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcDumpDefParents>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcDumpDefParents>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcDumpDefParents>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcDumpDefParents>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<RustcDumpDefParents>>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<RustcDumpDefParents>>
                                        as
                                        crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcDumpItemBounds>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<RustcDumpItemBounds>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcDumpItemBounds>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcDumpItemBounds>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcDumpItemBounds>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcDumpItemBounds>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<RustcDumpItemBounds>>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<RustcDumpItemBounds>>
                                        as
                                        crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcDumpPredicates>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<RustcDumpPredicates>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcDumpPredicates>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcDumpPredicates>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcDumpPredicates>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcDumpPredicates>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<RustcDumpPredicates>>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<RustcDumpPredicates>>
                                        as
                                        crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcDumpUserArgs>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<RustcDumpUserArgs>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcDumpUserArgs>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcDumpUserArgs>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcDumpUserArgs>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcDumpUserArgs>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<RustcDumpUserArgs>>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<RustcDumpUserArgs>> as
                                        crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcDumpVtable>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<RustcDumpVtable>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcDumpVtable>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcDumpVtable>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcDumpVtable>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcDumpVtable>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<RustcDumpVtable>>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<RustcDumpVtable>> as
                                        crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcHasIncoherentInherentImplsParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    ->
                                        RefCell<Single<WithoutArgs<RustcHasIncoherentInherentImplsParser>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcHasIncoherentInherentImplsParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcHasIncoherentInherentImplsParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcHasIncoherentInherentImplsParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcHasIncoherentInherentImplsParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<RustcHasIncoherentInherentImplsParser>>>::ATTRIBUTES
                            {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<RustcHasIncoherentInherentImplsParser>>
                                        as
                                        crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcLintOptTyParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<RustcLintOptTyParser>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcLintOptTyParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcLintOptTyParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcLintOptTyParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcLintOptTyParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<RustcLintOptTyParser>>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<RustcLintOptTyParser>>
                                        as
                                        crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcLintQueryInstabilityParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    ->
                                        RefCell<Single<WithoutArgs<RustcLintQueryInstabilityParser>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcLintQueryInstabilityParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcLintQueryInstabilityParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcLintQueryInstabilityParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcLintQueryInstabilityParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<RustcLintQueryInstabilityParser>>>::ATTRIBUTES
                            {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<RustcLintQueryInstabilityParser>>
                                        as
                                        crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcLintUntrackedQueryInformationParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    ->
                                        RefCell<Single<WithoutArgs<RustcLintUntrackedQueryInformationParser>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcLintUntrackedQueryInformationParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcLintUntrackedQueryInformationParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcLintUntrackedQueryInformationParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcLintUntrackedQueryInformationParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<RustcLintUntrackedQueryInformationParser>>>::ATTRIBUTES
                            {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<RustcLintUntrackedQueryInformationParser>>
                                        as
                                        crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcMainParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<RustcMainParser>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcMainParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcMainParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcMainParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcMainParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<RustcMainParser>>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<RustcMainParser>> as
                                        crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcNeverReturnsNullPointerParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    ->
                                        RefCell<Single<WithoutArgs<RustcNeverReturnsNullPointerParser>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcNeverReturnsNullPointerParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcNeverReturnsNullPointerParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcNeverReturnsNullPointerParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcNeverReturnsNullPointerParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<RustcNeverReturnsNullPointerParser>>>::ATTRIBUTES
                            {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<RustcNeverReturnsNullPointerParser>>
                                        as
                                        crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcNoImplicitAutorefsParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    ->
                                        RefCell<Single<WithoutArgs<RustcNoImplicitAutorefsParser>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcNoImplicitAutorefsParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcNoImplicitAutorefsParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcNoImplicitAutorefsParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcNoImplicitAutorefsParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<RustcNoImplicitAutorefsParser>>>::ATTRIBUTES
                            {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<RustcNoImplicitAutorefsParser>>
                                        as
                                        crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcNonConstTraitMethodParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    ->
                                        RefCell<Single<WithoutArgs<RustcNonConstTraitMethodParser>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcNonConstTraitMethodParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcNonConstTraitMethodParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcNonConstTraitMethodParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcNonConstTraitMethodParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<RustcNonConstTraitMethodParser>>>::ATTRIBUTES
                            {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<RustcNonConstTraitMethodParser>>
                                        as
                                        crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcNounwindParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<RustcNounwindParser>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcNounwindParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcNounwindParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcNounwindParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcNounwindParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<RustcNounwindParser>>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<RustcNounwindParser>>
                                        as
                                        crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcOffloadKernelParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<RustcOffloadKernelParser>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcOffloadKernelParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcOffloadKernelParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcOffloadKernelParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcOffloadKernelParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<RustcOffloadKernelParser>>>::ATTRIBUTES
                            {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<RustcOffloadKernelParser>>
                                        as
                                        crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcPassIndirectlyInNonRusticAbisParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    ->
                                        RefCell<Single<WithoutArgs<RustcPassIndirectlyInNonRusticAbisParser>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcPassIndirectlyInNonRusticAbisParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcPassIndirectlyInNonRusticAbisParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcPassIndirectlyInNonRusticAbisParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcPassIndirectlyInNonRusticAbisParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<RustcPassIndirectlyInNonRusticAbisParser>>>::ATTRIBUTES
                            {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<RustcPassIndirectlyInNonRusticAbisParser>>
                                        as
                                        crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcReallocatorParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<RustcReallocatorParser>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcReallocatorParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcReallocatorParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcReallocatorParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcReallocatorParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<RustcReallocatorParser>>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<RustcReallocatorParser>>
                                        as
                                        crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcShouldNotBeCalledOnConstItems>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    ->
                                        RefCell<Single<WithoutArgs<RustcShouldNotBeCalledOnConstItems>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcShouldNotBeCalledOnConstItems>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcShouldNotBeCalledOnConstItems>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcShouldNotBeCalledOnConstItems>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcShouldNotBeCalledOnConstItems>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<RustcShouldNotBeCalledOnConstItems>>>::ATTRIBUTES
                            {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<RustcShouldNotBeCalledOnConstItems>>
                                        as
                                        crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcVarianceOfOpaquesParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    ->
                                        RefCell<Single<WithoutArgs<RustcVarianceOfOpaquesParser>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcVarianceOfOpaquesParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcVarianceOfOpaquesParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcVarianceOfOpaquesParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcVarianceOfOpaquesParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<RustcVarianceOfOpaquesParser>>>::ATTRIBUTES
                            {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<RustcVarianceOfOpaquesParser>>
                                        as
                                        crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcVarianceParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<RustcVarianceParser>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcVarianceParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcVarianceParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcVarianceParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcVarianceParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<RustcVarianceParser>>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<RustcVarianceParser>>
                                        as
                                        crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<SpecializationTraitParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<SpecializationTraitParser>>> {
                                    RefCell::new(<Single<WithoutArgs<SpecializationTraitParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<SpecializationTraitParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<SpecializationTraitParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<SpecializationTraitParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<SpecializationTraitParser>>>::ATTRIBUTES
                            {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<SpecializationTraitParser>>
                                        as
                                        crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<StdInternalSymbolParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<StdInternalSymbolParser>>> {
                                    RefCell::new(<Single<WithoutArgs<StdInternalSymbolParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<StdInternalSymbolParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<StdInternalSymbolParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<StdInternalSymbolParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<StdInternalSymbolParser>>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<StdInternalSymbolParser>>
                                        as
                                        crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<ThreadLocalParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<ThreadLocalParser>>> {
                                    RefCell::new(<Single<WithoutArgs<ThreadLocalParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<ThreadLocalParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<ThreadLocalParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<ThreadLocalParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<ThreadLocalParser>>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<ThreadLocalParser>> as
                                        crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<TrackCallerParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<TrackCallerParser>>> {
                                    RefCell::new(<Single<WithoutArgs<TrackCallerParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<TrackCallerParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<TrackCallerParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<TrackCallerParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<TrackCallerParser>>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<TrackCallerParser>> as
                                        crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<TypeConstParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<TypeConstParser>>> {
                                    RefCell::new(<Single<WithoutArgs<TypeConstParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<TypeConstParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<TypeConstParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<TypeConstParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<TypeConstParser>>>::ATTRIBUTES {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<TypeConstParser>> as
                                        crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<UnsafeSpecializationMarkerParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    ->
                                        RefCell<Single<WithoutArgs<UnsafeSpecializationMarkerParser>>> {
                                    RefCell::new(<Single<WithoutArgs<UnsafeSpecializationMarkerParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<UnsafeSpecializationMarkerParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<UnsafeSpecializationMarkerParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<UnsafeSpecializationMarkerParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <Single<WithoutArgs<UnsafeSpecializationMarkerParser>>>::ATTRIBUTES
                            {
                            accepters.entry(*path).or_default().push(GroupTypeInnerAccept {
                                    template: *template,
                                    accept_fn: Box::new(|cx, args|
                                            {
                                                STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                            }),
                                    allowed_targets: <Single<WithoutArgs<UnsafeSpecializationMarkerParser>>
                                        as
                                        crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                    finalizer: Box::new(|cx|
                                            { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                });
                        }
                    }
                    GroupTypeInner { accepters }
                });
}attribute_parsers!(
179    pub(crate) static ATTRIBUTE_PARSERS = [
180        // tidy-alphabetical-start
181        AlignParser,
182        AlignStaticParser,
183        BodyStabilityParser,
184        ConfusablesParser,
185        ConstStabilityParser,
186        DocParser,
187        MacroUseParser,
188        NakedParser,
189        StabilityParser,
190        UsedParser,
191        // tidy-alphabetical-end
192
193        // tidy-alphabetical-start
194        Combine<AllowConstFnUnstableParser>,
195        Combine<AllowInternalUnstableParser>,
196        Combine<CrateTypeParser>,
197        Combine<DebuggerViualizerParser>,
198        Combine<ForceTargetFeatureParser>,
199        Combine<LinkParser>,
200        Combine<ReprParser>,
201        Combine<RustcLayoutParser>,
202        Combine<TargetFeatureParser>,
203        Combine<UnstableFeatureBoundParser>,
204        // tidy-alphabetical-end
205
206        // tidy-alphabetical-start
207        Single<CfiEncodingParser>,
208        Single<CollapseDebugInfoParser>,
209        Single<CoverageParser>,
210        Single<CrateNameParser>,
211        Single<CustomMirParser>,
212        Single<DeprecationParser>,
213        Single<DoNotRecommendParser>,
214        Single<DummyParser>,
215        Single<ExportNameParser>,
216        Single<IgnoreParser>,
217        Single<InlineParser>,
218        Single<InstructionSetParser>,
219        Single<LinkNameParser>,
220        Single<LinkOrdinalParser>,
221        Single<LinkSectionParser>,
222        Single<LinkageParser>,
223        Single<MacroExportParser>,
224        Single<MoveSizeLimitParser>,
225        Single<MustNotSuspendParser>,
226        Single<MustUseParser>,
227        Single<ObjcClassParser>,
228        Single<ObjcSelectorParser>,
229        Single<OptimizeParser>,
230        Single<PatchableFunctionEntryParser>,
231        Single<PathAttributeParser>,
232        Single<PatternComplexityLimitParser>,
233        Single<ProcMacroDeriveParser>,
234        Single<RecursionLimitParser>,
235        Single<RustcAllocatorZeroedVariantParser>,
236        Single<RustcBuiltinMacroParser>,
237        Single<RustcForceInlineParser>,
238        Single<RustcLayoutScalarValidRangeEndParser>,
239        Single<RustcLayoutScalarValidRangeStartParser>,
240        Single<RustcLegacyConstGenericsParser>,
241        Single<RustcLintOptDenyFieldAccessParser>,
242        Single<RustcMustImplementOneOfParser>,
243        Single<RustcObjectLifetimeDefaultParser>,
244        Single<RustcScalableVectorParser>,
245        Single<RustcSimdMonomorphizeLaneLimitParser>,
246        Single<SanitizeParser>,
247        Single<ShouldPanicParser>,
248        Single<SkipDuringMethodDispatchParser>,
249        Single<TransparencyParser>,
250        Single<TypeLengthLimitParser>,
251        Single<WindowsSubsystemParser>,
252        Single<WithoutArgs<AllowIncoherentImplParser>>,
253        Single<WithoutArgs<AllowInternalUnsafeParser>>,
254        Single<WithoutArgs<AsPtrParser>>,
255        Single<WithoutArgs<AutomaticallyDerivedParser>>,
256        Single<WithoutArgs<CoinductiveParser>>,
257        Single<WithoutArgs<ColdParser>>,
258        Single<WithoutArgs<CompilerBuiltinsParser>>,
259        Single<WithoutArgs<ConstContinueParser>>,
260        Single<WithoutArgs<ConstStabilityIndirectParser>>,
261        Single<WithoutArgs<CoroutineParser>>,
262        Single<WithoutArgs<DenyExplicitImplParser>>,
263        Single<WithoutArgs<DynIncompatibleTraitParser>>,
264        Single<WithoutArgs<EiiForeignItemParser>>,
265        Single<WithoutArgs<ExportStableParser>>,
266        Single<WithoutArgs<FfiConstParser>>,
267        Single<WithoutArgs<FfiPureParser>>,
268        Single<WithoutArgs<FundamentalParser>>,
269        Single<WithoutArgs<LoopMatchParser>>,
270        Single<WithoutArgs<MacroEscapeParser>>,
271        Single<WithoutArgs<MarkerParser>>,
272        Single<WithoutArgs<MayDangleParser>>,
273        Single<WithoutArgs<NeedsAllocatorParser>>,
274        Single<WithoutArgs<NeedsPanicRuntimeParser>>,
275        Single<WithoutArgs<NoBuiltinsParser>>,
276        Single<WithoutArgs<NoCoreParser>>,
277        Single<WithoutArgs<NoImplicitPreludeParser>>,
278        Single<WithoutArgs<NoLinkParser>>,
279        Single<WithoutArgs<NoMainParser>>,
280        Single<WithoutArgs<NoMangleParser>>,
281        Single<WithoutArgs<NoStdParser>>,
282        Single<WithoutArgs<NonExhaustiveParser>>,
283        Single<WithoutArgs<PanicRuntimeParser>>,
284        Single<WithoutArgs<ParenSugarParser>>,
285        Single<WithoutArgs<PassByValueParser>>,
286        Single<WithoutArgs<PinV2Parser>>,
287        Single<WithoutArgs<PointeeParser>>,
288        Single<WithoutArgs<ProcMacroAttributeParser>>,
289        Single<WithoutArgs<ProcMacroParser>>,
290        Single<WithoutArgs<ProfilerRuntimeParser>>,
291        Single<WithoutArgs<PubTransparentParser>>,
292        Single<WithoutArgs<RustcAllocatorParser>>,
293        Single<WithoutArgs<RustcAllocatorZeroedParser>>,
294        Single<WithoutArgs<RustcCoherenceIsCoreParser>>,
295        Single<WithoutArgs<RustcDeallocatorParser>>,
296        Single<WithoutArgs<RustcDumpDefParents>>,
297        Single<WithoutArgs<RustcDumpItemBounds>>,
298        Single<WithoutArgs<RustcDumpPredicates>>,
299        Single<WithoutArgs<RustcDumpUserArgs>>,
300        Single<WithoutArgs<RustcDumpVtable>>,
301        Single<WithoutArgs<RustcHasIncoherentInherentImplsParser>>,
302        Single<WithoutArgs<RustcLintOptTyParser>>,
303        Single<WithoutArgs<RustcLintQueryInstabilityParser>>,
304        Single<WithoutArgs<RustcLintUntrackedQueryInformationParser>>,
305        Single<WithoutArgs<RustcMainParser>>,
306        Single<WithoutArgs<RustcNeverReturnsNullPointerParser>>,
307        Single<WithoutArgs<RustcNoImplicitAutorefsParser>>,
308        Single<WithoutArgs<RustcNonConstTraitMethodParser>>,
309        Single<WithoutArgs<RustcNounwindParser>>,
310        Single<WithoutArgs<RustcOffloadKernelParser>>,
311        Single<WithoutArgs<RustcPassIndirectlyInNonRusticAbisParser>>,
312        Single<WithoutArgs<RustcReallocatorParser>>,
313        Single<WithoutArgs<RustcShouldNotBeCalledOnConstItems>>,
314        Single<WithoutArgs<RustcVarianceOfOpaquesParser>>,
315        Single<WithoutArgs<RustcVarianceParser>>,
316        Single<WithoutArgs<SpecializationTraitParser>>,
317        Single<WithoutArgs<StdInternalSymbolParser>>,
318        Single<WithoutArgs<ThreadLocalParser>>,
319        Single<WithoutArgs<TrackCallerParser>>,
320        Single<WithoutArgs<TypeConstParser>>,
321        Single<WithoutArgs<UnsafeSpecializationMarkerParser>>,
322        // tidy-alphabetical-end
323    ];
324);
325
326mod private {
327    pub trait Sealed {}
328    impl Sealed for super::Early {}
329    impl Sealed for super::Late {}
330}
331
332// allow because it's a sealed trait
333#[allow(private_interfaces)]
334pub trait Stage: Sized + 'static + Sealed {
335    type Id: Copy;
336
337    fn parsers() -> &'static GroupType<Self>;
338
339    fn emit_err<'sess>(
340        &self,
341        sess: &'sess Session,
342        diag: impl for<'x> Diagnostic<'x>,
343    ) -> ErrorGuaranteed;
344
345    fn should_emit(&self) -> ShouldEmit;
346}
347
348// allow because it's a sealed trait
349#[allow(private_interfaces)]
350impl Stage for Early {
351    type Id = NodeId;
352
353    fn parsers() -> &'static GroupType<Self> {
354        &early::ATTRIBUTE_PARSERS
355    }
356    fn emit_err<'sess>(
357        &self,
358        sess: &'sess Session,
359        diag: impl for<'x> Diagnostic<'x>,
360    ) -> ErrorGuaranteed {
361        self.should_emit().emit_err(sess.dcx().create_err(diag))
362    }
363
364    fn should_emit(&self) -> ShouldEmit {
365        self.emit_errors
366    }
367}
368
369// allow because it's a sealed trait
370#[allow(private_interfaces)]
371impl Stage for Late {
372    type Id = HirId;
373
374    fn parsers() -> &'static GroupType<Self> {
375        &late::ATTRIBUTE_PARSERS
376    }
377    fn emit_err<'sess>(
378        &self,
379        tcx: &'sess Session,
380        diag: impl for<'x> Diagnostic<'x>,
381    ) -> ErrorGuaranteed {
382        tcx.dcx().emit_err(diag)
383    }
384
385    fn should_emit(&self) -> ShouldEmit {
386        ShouldEmit::ErrorsAndLints { recover: true }
387    }
388}
389
390/// used when parsing attributes for miscellaneous things *before* ast lowering
391pub struct Early {
392    /// Whether to emit errors or delay them as a bug
393    /// For most attributes, the attribute will be parsed again in the `Late` stage and in this case the errors should be delayed
394    /// But for some, such as `cfg`, the attribute will be removed before the `Late` stage so errors must be emitted
395    pub emit_errors: ShouldEmit,
396}
397/// used when parsing attributes during ast lowering
398pub struct Late;
399
400/// Context given to every attribute parser when accepting
401///
402/// Gives [`AttributeParser`]s enough information to create errors, for example.
403pub struct AcceptContext<'f, 'sess, S: Stage> {
404    pub(crate) shared: SharedContext<'f, 'sess, S>,
405
406    /// The outer span of the attribute currently being parsed
407    /// #[attribute(...)]
408    /// ^^^^^^^^^^^^^^^^^ outer span
409    /// For attributes in `cfg_attr`, the outer span and inner spans are equal.
410    pub(crate) attr_span: Span,
411    /// The inner span of the attribute currently being parsed
412    /// #[attribute(...)]
413    ///   ^^^^^^^^^^^^^^  inner span
414    pub(crate) inner_span: Span,
415
416    /// Whether it is an inner or outer attribute
417    pub(crate) attr_style: AttrStyle,
418
419    /// A description of the thing we are parsing using this attribute parser
420    /// We are not only using these parsers for attributes, but also for macros such as the `cfg!()` macro.
421    pub(crate) parsed_description: ParsedDescription,
422
423    /// The expected structure of the attribute.
424    ///
425    /// Used in reporting errors to give a hint to users what the attribute *should* look like.
426    pub(crate) template: &'f AttributeTemplate,
427
428    /// The name of the attribute we're currently accepting.
429    pub(crate) attr_path: AttrPath,
430}
431
432impl<'f, 'sess: 'f, S: Stage> SharedContext<'f, 'sess, S> {
433    pub(crate) fn emit_err(&self, diag: impl for<'x> Diagnostic<'x>) -> ErrorGuaranteed {
434        self.stage.emit_err(&self.sess, diag)
435    }
436
437    /// Emit a lint. This method is somewhat special, since lints emitted during attribute parsing
438    /// must be delayed until after HIR is built. This method will take care of the details of
439    /// that.
440    pub(crate) fn emit_lint(&mut self, lint: &'static Lint, kind: AttributeLintKind, span: Span) {
441        if !#[allow(non_exhaustive_omitted_patterns)] match self.stage.should_emit() {
    ShouldEmit::ErrorsAndLints { .. } | ShouldEmit::EarlyFatal {
        also_emit_lints: true } => true,
    _ => false,
}matches!(
442            self.stage.should_emit(),
443            ShouldEmit::ErrorsAndLints { .. } | ShouldEmit::EarlyFatal { also_emit_lints: true }
444        ) {
445            return;
446        }
447        (self.emit_lint)(LintId::of(lint), span, kind);
448    }
449
450    pub(crate) fn warn_unused_duplicate(&mut self, used_span: Span, unused_span: Span) {
451        self.emit_lint(
452            rustc_session::lint::builtin::UNUSED_ATTRIBUTES,
453            AttributeLintKind::UnusedDuplicate {
454                this: unused_span,
455                other: used_span,
456                warning: false,
457            },
458            unused_span,
459        )
460    }
461
462    pub(crate) fn warn_unused_duplicate_future_error(
463        &mut self,
464        used_span: Span,
465        unused_span: Span,
466    ) {
467        self.emit_lint(
468            rustc_session::lint::builtin::UNUSED_ATTRIBUTES,
469            AttributeLintKind::UnusedDuplicate {
470                this: unused_span,
471                other: used_span,
472                warning: true,
473            },
474            unused_span,
475        )
476    }
477}
478
479impl<'f, 'sess: 'f, S: Stage> AcceptContext<'f, 'sess, S> {
480    fn emit_parse_error(
481        &self,
482        span: Span,
483        reason: AttributeParseErrorReason<'_>,
484    ) -> ErrorGuaranteed {
485        self.emit_err(AttributeParseError {
486            span,
487            attr_span: self.attr_span,
488            template: self.template.clone(),
489            path: self.attr_path.clone(),
490            description: self.parsed_description,
491            reason,
492            suggestions: self.suggestions(),
493        })
494    }
495
496    /// error that a string literal was expected.
497    /// You can optionally give the literal you did find (which you found not to be a string literal)
498    /// which can make better errors. For example, if the literal was a byte string it will suggest
499    /// removing the `b` prefix.
500    pub(crate) fn expected_string_literal(
501        &self,
502        span: Span,
503        actual_literal: Option<&MetaItemLit>,
504    ) -> ErrorGuaranteed {
505        self.emit_parse_error(
506            span,
507            AttributeParseErrorReason::ExpectedStringLiteral {
508                byte_string: actual_literal.and_then(|i| {
509                    i.kind.is_bytestr().then(|| self.sess().source_map().start_point(i.span))
510                }),
511            },
512        )
513    }
514
515    pub(crate) fn expected_integer_literal(&self, span: Span) -> ErrorGuaranteed {
516        self.emit_parse_error(span, AttributeParseErrorReason::ExpectedIntegerLiteral)
517    }
518
519    pub(crate) fn expected_integer_literal_in_range(
520        &self,
521        span: Span,
522        lower_bound: isize,
523        upper_bound: isize,
524    ) -> ErrorGuaranteed {
525        self.emit_parse_error(
526            span,
527            AttributeParseErrorReason::ExpectedIntegerLiteralInRange { lower_bound, upper_bound },
528        )
529    }
530
531    pub(crate) fn expected_list(&self, span: Span, args: &ArgParser) -> ErrorGuaranteed {
532        let span = match args {
533            ArgParser::NoArgs => span,
534            ArgParser::List(list) => list.span,
535            ArgParser::NameValue(nv) => nv.args_span(),
536        };
537        self.emit_parse_error(span, AttributeParseErrorReason::ExpectedList)
538    }
539
540    pub(crate) fn expected_list_with_num_args_or_more(
541        &self,
542        args: usize,
543        span: Span,
544    ) -> ErrorGuaranteed {
545        self.emit_parse_error(
546            span,
547            AttributeParseErrorReason::ExpectedListWithNumArgsOrMore { args },
548        )
549    }
550
551    pub(crate) fn expected_list_or_no_args(&self, span: Span) -> ErrorGuaranteed {
552        self.emit_parse_error(span, AttributeParseErrorReason::ExpectedListOrNoArgs)
553    }
554
555    pub(crate) fn expected_nv_or_no_args(&self, span: Span) -> ErrorGuaranteed {
556        self.emit_parse_error(span, AttributeParseErrorReason::ExpectedNameValueOrNoArgs)
557    }
558
559    pub(crate) fn expected_non_empty_string_literal(&self, span: Span) -> ErrorGuaranteed {
560        self.emit_parse_error(span, AttributeParseErrorReason::ExpectedNonEmptyStringLiteral)
561    }
562
563    pub(crate) fn expected_no_args(&self, span: Span) -> ErrorGuaranteed {
564        self.emit_parse_error(span, AttributeParseErrorReason::ExpectedNoArgs)
565    }
566
567    /// emit an error that a `name` was expected here
568    pub(crate) fn expected_identifier(&self, span: Span) -> ErrorGuaranteed {
569        self.emit_parse_error(span, AttributeParseErrorReason::ExpectedIdentifier)
570    }
571
572    /// emit an error that a `name = value` pair was expected at this span. The symbol can be given for
573    /// a nicer error message talking about the specific name that was found lacking a value.
574    pub(crate) fn expected_name_value(&self, span: Span, name: Option<Symbol>) -> ErrorGuaranteed {
575        self.emit_parse_error(span, AttributeParseErrorReason::ExpectedNameValue(name))
576    }
577
578    /// emit an error that a `name = value` pair was found where that name was already seen.
579    pub(crate) fn duplicate_key(&self, span: Span, key: Symbol) -> ErrorGuaranteed {
580        self.emit_parse_error(span, AttributeParseErrorReason::DuplicateKey(key))
581    }
582
583    /// an error that should be emitted when a [`MetaItemOrLitParser`](crate::parser::MetaItemOrLitParser)
584    /// was expected *not* to be a literal, but instead a meta item.
585    pub(crate) fn unexpected_literal(&self, span: Span) -> ErrorGuaranteed {
586        self.emit_parse_error(span, AttributeParseErrorReason::UnexpectedLiteral)
587    }
588
589    pub(crate) fn expected_single_argument(&self, span: Span) -> ErrorGuaranteed {
590        self.emit_parse_error(span, AttributeParseErrorReason::ExpectedSingleArgument)
591    }
592
593    pub(crate) fn expected_at_least_one_argument(&self, span: Span) -> ErrorGuaranteed {
594        self.emit_parse_error(span, AttributeParseErrorReason::ExpectedAtLeastOneArgument)
595    }
596
597    /// produces an error along the lines of `expected one of [foo, meow]`
598    pub(crate) fn expected_specific_argument(
599        &self,
600        span: Span,
601        possibilities: &[Symbol],
602    ) -> ErrorGuaranteed {
603        self.emit_parse_error(
604            span,
605            AttributeParseErrorReason::ExpectedSpecificArgument {
606                possibilities,
607                strings: false,
608                list: false,
609            },
610        )
611    }
612
613    /// produces an error along the lines of `expected one of [foo, meow] as an argument`.
614    /// i.e. slightly different wording to [`expected_specific_argument`](Self::expected_specific_argument).
615    pub(crate) fn expected_specific_argument_and_list(
616        &self,
617        span: Span,
618        possibilities: &[Symbol],
619    ) -> ErrorGuaranteed {
620        self.emit_parse_error(
621            span,
622            AttributeParseErrorReason::ExpectedSpecificArgument {
623                possibilities,
624                strings: false,
625                list: true,
626            },
627        )
628    }
629
630    /// produces an error along the lines of `expected one of ["foo", "meow"]`
631    pub(crate) fn expected_specific_argument_strings(
632        &self,
633        span: Span,
634        possibilities: &[Symbol],
635    ) -> ErrorGuaranteed {
636        self.emit_parse_error(
637            span,
638            AttributeParseErrorReason::ExpectedSpecificArgument {
639                possibilities,
640                strings: true,
641                list: false,
642            },
643        )
644    }
645
646    pub(crate) fn warn_empty_attribute(&mut self, span: Span) {
647        let attr_path = self.attr_path.clone().to_string();
648        let valid_without_list = self.template.word;
649        self.emit_lint(
650            rustc_session::lint::builtin::UNUSED_ATTRIBUTES,
651            AttributeLintKind::EmptyAttribute { first_span: span, attr_path, valid_without_list },
652            span,
653        );
654    }
655
656    pub(crate) fn warn_ill_formed_attribute_input(&mut self, lint: &'static Lint) {
657        let suggestions = self.suggestions();
658        let span = self.attr_span;
659        self.emit_lint(
660            lint,
661            AttributeLintKind::IllFormedAttributeInput { suggestions, docs: None },
662            span,
663        );
664    }
665
666    pub(crate) fn suggestions(&self) -> Vec<String> {
667        let style = match self.parsed_description {
668            // If the outer and inner spans are equal, we are parsing an embedded attribute
669            ParsedDescription::Attribute if self.attr_span == self.inner_span => {
670                AttrSuggestionStyle::EmbeddedAttribute
671            }
672            ParsedDescription::Attribute => AttrSuggestionStyle::Attribute(self.attr_style),
673            ParsedDescription::Macro => AttrSuggestionStyle::Macro,
674        };
675
676        self.template.suggestions(style, &self.attr_path)
677    }
678}
679
680impl<'f, 'sess, S: Stage> Deref for AcceptContext<'f, 'sess, S> {
681    type Target = SharedContext<'f, 'sess, S>;
682
683    fn deref(&self) -> &Self::Target {
684        &self.shared
685    }
686}
687
688impl<'f, 'sess, S: Stage> DerefMut for AcceptContext<'f, 'sess, S> {
689    fn deref_mut(&mut self) -> &mut Self::Target {
690        &mut self.shared
691    }
692}
693
694/// Context given to every attribute parser during finalization.
695///
696/// Gives [`AttributeParser`](crate::attributes::AttributeParser)s enough information to create
697/// errors, for example.
698pub struct SharedContext<'p, 'sess, S: Stage> {
699    /// The parse context, gives access to the session and the
700    /// diagnostics context.
701    pub(crate) cx: &'p mut AttributeParser<'sess, S>,
702    /// The span of the syntactical component this attribute was applied to
703    pub(crate) target_span: Span,
704    pub(crate) target: rustc_hir::Target,
705
706    /// The second argument of the closure is a [`NodeId`] if `S` is `Early` and a [`HirId`] if `S`
707    /// is `Late` and is the ID of the syntactical component this attribute was applied to.
708    pub(crate) emit_lint: &'p mut dyn FnMut(LintId, Span, AttributeLintKind),
709}
710
711/// Context given to every attribute parser during finalization.
712///
713/// Gives [`AttributeParser`](crate::attributes::AttributeParser)s enough information to create
714/// errors, for example.
715pub(crate) struct FinalizeContext<'p, 'sess, S: Stage> {
716    pub(crate) shared: SharedContext<'p, 'sess, S>,
717
718    /// A list of all attribute on this syntax node.
719    ///
720    /// Useful for compatibility checks with other attributes in [`finalize`](crate::attributes::AttributeParser::finalize)
721    ///
722    /// Usually, you should use normal attribute parsing logic instead,
723    /// especially when making a *denylist* of other attributes.
724    pub(crate) all_attrs: &'p [RefPathParser<'p>],
725}
726
727impl<'p, 'sess: 'p, S: Stage> Deref for FinalizeContext<'p, 'sess, S> {
728    type Target = SharedContext<'p, 'sess, S>;
729
730    fn deref(&self) -> &Self::Target {
731        &self.shared
732    }
733}
734
735impl<'p, 'sess: 'p, S: Stage> DerefMut for FinalizeContext<'p, 'sess, S> {
736    fn deref_mut(&mut self) -> &mut Self::Target {
737        &mut self.shared
738    }
739}
740
741impl<'p, 'sess: 'p, S: Stage> Deref for SharedContext<'p, 'sess, S> {
742    type Target = AttributeParser<'sess, S>;
743
744    fn deref(&self) -> &Self::Target {
745        self.cx
746    }
747}
748
749impl<'p, 'sess: 'p, S: Stage> DerefMut for SharedContext<'p, 'sess, S> {
750    fn deref_mut(&mut self) -> &mut Self::Target {
751        self.cx
752    }
753}
754
755#[derive(#[automatically_derived]
impl ::core::cmp::PartialEq for OmitDoc {
    #[inline]
    fn eq(&self, other: &OmitDoc) -> bool {
        let __self_discr = ::core::intrinsics::discriminant_value(self);
        let __arg1_discr = ::core::intrinsics::discriminant_value(other);
        __self_discr == __arg1_discr
    }
}PartialEq, #[automatically_derived]
impl ::core::clone::Clone for OmitDoc {
    #[inline]
    fn clone(&self) -> OmitDoc { *self }
}Clone, #[automatically_derived]
impl ::core::marker::Copy for OmitDoc { }Copy, #[automatically_derived]
impl ::core::fmt::Debug for OmitDoc {
    #[inline]
    fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
        ::core::fmt::Formatter::write_str(f,
            match self {
                OmitDoc::Lower => "Lower",
                OmitDoc::Skip => "Skip",
            })
    }
}Debug)]
756pub enum OmitDoc {
757    Lower,
758    Skip,
759}
760
761#[derive(#[automatically_derived]
impl ::core::marker::Copy for ShouldEmit { }Copy, #[automatically_derived]
impl ::core::clone::Clone for ShouldEmit {
    #[inline]
    fn clone(&self) -> ShouldEmit {
        let _: ::core::clone::AssertParamIsClone<bool>;
        *self
    }
}Clone, #[automatically_derived]
impl ::core::fmt::Debug for ShouldEmit {
    #[inline]
    fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
        match self {
            ShouldEmit::EarlyFatal { also_emit_lints: __self_0 } =>
                ::core::fmt::Formatter::debug_struct_field1_finish(f,
                    "EarlyFatal", "also_emit_lints", &__self_0),
            ShouldEmit::ErrorsAndLints { recover: __self_0 } =>
                ::core::fmt::Formatter::debug_struct_field1_finish(f,
                    "ErrorsAndLints", "recover", &__self_0),
            ShouldEmit::Nothing =>
                ::core::fmt::Formatter::write_str(f, "Nothing"),
        }
    }
}Debug)]
762pub enum ShouldEmit {
763    /// The operations will emit errors, and lints, and errors are fatal.
764    ///
765    /// Only relevant when early parsing, in late parsing equivalent to `ErrorsAndLints`.
766    /// Late parsing is never fatal, and instead tries to emit as many diagnostics as possible.
767    EarlyFatal { also_emit_lints: bool },
768    /// The operation will emit errors and lints.
769    /// This is usually what you need.
770    ErrorsAndLints {
771        /// Whether [`ArgParser`] will attempt to recover from errors.
772        ///
773        /// If true, it will attempt to recover from bad input (like an invalid literal). Setting
774        /// this to false will instead return early, and not raise errors except at the top level
775        /// (in [`ArgParser::from_attr_args`]).
776        recover: bool,
777    },
778    /// The operation will *not* emit errors and lints.
779    ///
780    /// The parser can still call `delay_bug`, so you *must* ensure that this operation will also be
781    /// called with `ShouldEmit::ErrorsAndLints`.
782    Nothing,
783}
784
785impl ShouldEmit {
786    pub(crate) fn emit_err(&self, diag: Diag<'_>) -> ErrorGuaranteed {
787        match self {
788            ShouldEmit::EarlyFatal { .. } if diag.level() == Level::DelayedBug => diag.emit(),
789            ShouldEmit::EarlyFatal { .. } => diag.upgrade_to_fatal().emit(),
790            ShouldEmit::ErrorsAndLints { .. } => diag.emit(),
791            ShouldEmit::Nothing => diag.delay_as_bug(),
792        }
793    }
794}