Skip to main content

rustc_attr_parsing/
context.rs

1use std::cell::RefCell;
2use std::collections::BTreeMap;
3use std::collections::btree_map::Entry;
4use std::mem;
5use std::ops::{Deref, DerefMut};
6use std::sync::LazyLock;
7
8use private::Sealed;
9use rustc_ast::{AttrStyle, MetaItemLit, NodeId};
10use rustc_data_structures::sync::{DynSend, DynSync};
11use rustc_errors::{Diag, DiagCtxtHandle, Diagnostic, Level, MultiSpan};
12use rustc_feature::{AttrSuggestionStyle, AttributeTemplate};
13use rustc_hir::attrs::AttributeKind;
14use rustc_hir::lints::AttributeLintKind;
15use rustc_hir::{AttrPath, HirId};
16use rustc_parse::parser::Recovery;
17use rustc_session::Session;
18use rustc_session::lint::{Lint, LintId};
19use rustc_span::{ErrorGuaranteed, Span, Symbol};
20
21// Glob imports to avoid big, bitrotty import lists
22use crate::attributes::allow_unstable::*;
23use crate::attributes::autodiff::*;
24use crate::attributes::body::*;
25use crate::attributes::cfi_encoding::*;
26use crate::attributes::codegen_attrs::*;
27use crate::attributes::confusables::*;
28use crate::attributes::crate_level::*;
29use crate::attributes::debugger::*;
30use crate::attributes::deprecation::*;
31use crate::attributes::diagnostic::do_not_recommend::*;
32use crate::attributes::diagnostic::on_const::*;
33use crate::attributes::diagnostic::on_move::*;
34use crate::attributes::diagnostic::on_unimplemented::*;
35use crate::attributes::diagnostic::on_unknown::*;
36use crate::attributes::doc::*;
37use crate::attributes::dummy::*;
38use crate::attributes::inline::*;
39use crate::attributes::instruction_set::*;
40use crate::attributes::link_attrs::*;
41use crate::attributes::lint_helpers::*;
42use crate::attributes::loop_match::*;
43use crate::attributes::macro_attrs::*;
44use crate::attributes::must_not_suspend::*;
45use crate::attributes::must_use::*;
46use crate::attributes::no_implicit_prelude::*;
47use crate::attributes::no_link::*;
48use crate::attributes::non_exhaustive::*;
49use crate::attributes::path::PathParser as PathAttributeParser;
50use crate::attributes::pin_v2::*;
51use crate::attributes::proc_macro_attrs::*;
52use crate::attributes::prototype::*;
53use crate::attributes::repr::*;
54use crate::attributes::rustc_allocator::*;
55use crate::attributes::rustc_dump::*;
56use crate::attributes::rustc_internal::*;
57use crate::attributes::semantics::*;
58use crate::attributes::stability::*;
59use crate::attributes::test_attrs::*;
60use crate::attributes::traits::*;
61use crate::attributes::transparency::*;
62use crate::attributes::{AttributeParser as _, AttributeSafety, Combine, Single, WithoutArgs};
63use crate::parser::{ArgParser, MetaItemOrLitParser, RefPathParser};
64use crate::session_diagnostics::{
65    AttributeParseError, AttributeParseErrorReason, AttributeParseErrorSuggestions,
66    ParsedDescription,
67};
68use crate::target_checking::AllowedTargets;
69use crate::{AttributeParser, EmitAttribute};
70type GroupType<S> = LazyLock<GroupTypeInner<S>>;
71
72pub(super) struct GroupTypeInner<S: Stage> {
73    pub(super) accepters: BTreeMap<&'static [Symbol], GroupTypeInnerAccept<S>>,
74}
75
76pub(super) struct GroupTypeInnerAccept<S: Stage> {
77    pub(super) template: AttributeTemplate,
78    pub(super) accept_fn: AcceptFn<S>,
79    pub(super) allowed_targets: AllowedTargets,
80    pub(super) safety: AttributeSafety,
81    pub(super) finalizer: FinalizeFn<S>,
82}
83
84pub(crate) type AcceptFn<S> =
85    Box<dyn for<'sess, 'a> Fn(&mut AcceptContext<'_, 'sess, S>, &ArgParser) + Send + Sync>;
86pub(crate) type FinalizeFn<S> =
87    Box<dyn Send + Sync + Fn(&mut FinalizeContext<'_, '_, S>) -> Option<AttributeKind>>;
88
89macro_rules! attribute_parsers {
90    (
91        pub(crate) static $name: ident = [$($names: ty),* $(,)?];
92    ) => {
93        mod early {
94            use super::*;
95            type Combine<T> = super::Combine<T, Early>;
96            type Single<T> = super::Single<T, Early>;
97            type WithoutArgs<T> = super::WithoutArgs<T, Early>;
98
99            attribute_parsers!(@[Early] pub(crate) static $name = [$($names),*];);
100        }
101        mod late {
102            use super::*;
103            type Combine<T> = super::Combine<T, Late>;
104            type Single<T> = super::Single<T, Late>;
105            type WithoutArgs<T> = super::WithoutArgs<T, Late>;
106
107            attribute_parsers!(@[Late] pub(crate) static $name = [$($names),*];);
108        }
109    };
110    (
111        @[$stage: ty] pub(crate) static $name: ident = [$($names: ty),* $(,)?];
112    ) => {
113        pub(crate) static $name: GroupType<$stage> = LazyLock::new(|| {
114            let mut accepters = BTreeMap::<_, GroupTypeInnerAccept<$stage>>::new();
115            $(
116                {
117                    thread_local! {
118                        static STATE_OBJECT: RefCell<$names> = RefCell::new(<$names>::default());
119                    };
120
121                    for (path, template, accept_fn) in <$names>::ATTRIBUTES {
122                        match accepters.entry(*path) {
123                            Entry::Vacant(e) => {
124                                e.insert(GroupTypeInnerAccept {
125                                    template: *template,
126                                    accept_fn: Box::new(|cx, args| {
127                                        STATE_OBJECT.with_borrow_mut(|s| {
128                                            accept_fn(s, cx, args)
129                                        })
130                                    }),
131                                    safety: <$names as crate::attributes::AttributeParser<$stage>>::SAFETY,
132                                    allowed_targets: <$names as crate::attributes::AttributeParser<$stage>>::ALLOWED_TARGETS,
133                                    finalizer: Box::new(|cx| {
134                                        let state = STATE_OBJECT.take();
135                                        state.finalize(cx)
136                                    })
137                                });
138                            }
139                            Entry::Occupied(_) => panic!("Attribute {path:?} has multiple accepters"),
140                        }
141                    }
142                }
143            )*
144
145            GroupTypeInner { accepters }
146        });
147    };
148}
149mod 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::<_, GroupTypeInnerAccept<Early>>::new();
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <BodyStabilityParser as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <BodyStabilityParser as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <ConfusablesParser as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <ConfusablesParser as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <ConstStabilityParser as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <ConstStabilityParser as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <DocParser as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <DocParser as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <MacroUseParser as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <MacroUseParser as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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
                            {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <NakedParser as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <NakedParser as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<OnConstParser>> =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn() -> RefCell<OnConstParser> {
                                    RefCell::new(<OnConstParser>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<OnConstParser>>() {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<OnConstParser>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<OnConstParser>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <OnConstParser>::ATTRIBUTES {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <OnConstParser as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <OnConstParser as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<OnMoveParser>> =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn() -> RefCell<OnMoveParser> {
                                    RefCell::new(<OnMoveParser>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<OnMoveParser>>() {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<OnMoveParser>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<OnMoveParser>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <OnMoveParser>::ATTRIBUTES {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <OnMoveParser as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <OnMoveParser as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<OnUnimplementedParser>> =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<OnUnimplementedParser> {
                                    RefCell::new(<OnUnimplementedParser>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<OnUnimplementedParser>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<OnUnimplementedParser>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<OnUnimplementedParser>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <OnUnimplementedParser>::ATTRIBUTES {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <OnUnimplementedParser as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <OnUnimplementedParser as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<OnUnknownParser>> =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<OnUnknownParser> {
                                    RefCell::new(<OnUnknownParser>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<OnUnknownParser>>() {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<OnUnknownParser>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<OnUnknownParser>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <OnUnknownParser>::ATTRIBUTES {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <OnUnknownParser as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <OnUnknownParser as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<RustcAlignParser>> =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<RustcAlignParser> {
                                    RefCell::new(<RustcAlignParser>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<RustcAlignParser>>() {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<RustcAlignParser>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<RustcAlignParser>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <RustcAlignParser>::ATTRIBUTES {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <RustcAlignParser as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <RustcAlignParser as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<RustcAlignStaticParser>> =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<RustcAlignStaticParser> {
                                    RefCell::new(<RustcAlignStaticParser>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<RustcAlignStaticParser>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<RustcAlignStaticParser>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<RustcAlignStaticParser>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <RustcAlignStaticParser>::ATTRIBUTES {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <RustcAlignStaticParser as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <RustcAlignStaticParser as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<RustcCguTestAttributeParser>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<RustcCguTestAttributeParser> {
                                    RefCell::new(<RustcCguTestAttributeParser>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<RustcCguTestAttributeParser>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<RustcCguTestAttributeParser>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<RustcCguTestAttributeParser>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <RustcCguTestAttributeParser>::ATTRIBUTES {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <RustcCguTestAttributeParser as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <RustcCguTestAttributeParser as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <StabilityParser as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <StabilityParser as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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
                            {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <UsedParser as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <UsedParser as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Combine<AllowInternalUnstableParser> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Combine<AllowInternalUnstableParser> as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Combine<CrateTypeParser> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Combine<CrateTypeParser> as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Combine<DebuggerViualizerParser> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Combine<DebuggerViualizerParser> as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Combine<FeatureParser>>> =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Combine<FeatureParser>> {
                                    RefCell::new(<Combine<FeatureParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Combine<FeatureParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Combine<FeatureParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<FeatureParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<FeatureParser>>::ATTRIBUTES {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Combine<FeatureParser> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Combine<FeatureParser> as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Combine<ForceTargetFeatureParser> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Combine<ForceTargetFeatureParser> as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Combine<LinkParser> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Combine<LinkParser> as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Combine<RegisterToolParser>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Combine<RegisterToolParser>> {
                                    RefCell::new(<Combine<RegisterToolParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Combine<RegisterToolParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Combine<RegisterToolParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<RegisterToolParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<RegisterToolParser>>::ATTRIBUTES {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Combine<RegisterToolParser> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Combine<RegisterToolParser> as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Combine<ReprParser> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Combine<ReprParser> as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Combine<RustcAllowConstFnUnstableParser>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Combine<RustcAllowConstFnUnstableParser>> {
                                    RefCell::new(<Combine<RustcAllowConstFnUnstableParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Combine<RustcAllowConstFnUnstableParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Combine<RustcAllowConstFnUnstableParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<RustcAllowConstFnUnstableParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<RustcAllowConstFnUnstableParser>>::ATTRIBUTES {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Combine<RustcAllowConstFnUnstableParser> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Combine<RustcAllowConstFnUnstableParser>
                                                as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Combine<RustcCleanParser>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Combine<RustcCleanParser>> {
                                    RefCell::new(<Combine<RustcCleanParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Combine<RustcCleanParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Combine<RustcCleanParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<RustcCleanParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<RustcCleanParser>>::ATTRIBUTES {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Combine<RustcCleanParser> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Combine<RustcCleanParser> as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Combine<RustcDumpLayoutParser>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Combine<RustcDumpLayoutParser>> {
                                    RefCell::new(<Combine<RustcDumpLayoutParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Combine<RustcDumpLayoutParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Combine<RustcDumpLayoutParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<RustcDumpLayoutParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<RustcDumpLayoutParser>>::ATTRIBUTES {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Combine<RustcDumpLayoutParser> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Combine<RustcDumpLayoutParser> as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Combine<RustcMirParser>>> =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Combine<RustcMirParser>> {
                                    RefCell::new(<Combine<RustcMirParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Combine<RustcMirParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Combine<RustcMirParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<RustcMirParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<RustcMirParser>>::ATTRIBUTES {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Combine<RustcMirParser> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Combine<RustcMirParser> as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Combine<RustcThenThisWouldNeedParser>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Combine<RustcThenThisWouldNeedParser>> {
                                    RefCell::new(<Combine<RustcThenThisWouldNeedParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Combine<RustcThenThisWouldNeedParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Combine<RustcThenThisWouldNeedParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<RustcThenThisWouldNeedParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<RustcThenThisWouldNeedParser>>::ATTRIBUTES {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Combine<RustcThenThisWouldNeedParser> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Combine<RustcThenThisWouldNeedParser> as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Combine<TargetFeatureParser> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Combine<TargetFeatureParser> as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Combine<UnstableFeatureBoundParser> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Combine<UnstableFeatureBoundParser> as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Combine<UnstableRemovedParser>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Combine<UnstableRemovedParser>> {
                                    RefCell::new(<Combine<UnstableRemovedParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Combine<UnstableRemovedParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Combine<UnstableRemovedParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<UnstableRemovedParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<UnstableRemovedParser>>::ATTRIBUTES {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Combine<UnstableRemovedParser> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Combine<UnstableRemovedParser> as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<CfiEncodingParser> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<CfiEncodingParser> as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<CollapseDebugInfoParser> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<CollapseDebugInfoParser> as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<CoverageParser> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<CoverageParser> as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<CrateNameParser> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<CrateNameParser> as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<CustomMirParser> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<CustomMirParser> as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<DeprecatedParser>>> =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<DeprecatedParser>> {
                                    RefCell::new(<Single<DeprecatedParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<DeprecatedParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<DeprecatedParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<DeprecatedParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<DeprecatedParser>>::ATTRIBUTES {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<DeprecatedParser> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<DeprecatedParser> as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<DoNotRecommendParser> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<DoNotRecommendParser> as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<ExportNameParser> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<ExportNameParser> as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<IgnoreParser> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<IgnoreParser> as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<InlineParser> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<InlineParser> as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<InstructionSetParser> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<InstructionSetParser> as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<LangParser>>> =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<LangParser>> {
                                    RefCell::new(<Single<LangParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<LangParser>>>() {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<LangParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<LangParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<LangParser>>::ATTRIBUTES {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<LangParser> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<LangParser> as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<LinkNameParser> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<LinkNameParser> as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<LinkOrdinalParser> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<LinkOrdinalParser> as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<LinkSectionParser> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<LinkSectionParser> as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<LinkageParser> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<LinkageParser> as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<MacroExportParser> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<MacroExportParser> as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<MoveSizeLimitParser> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<MoveSizeLimitParser> as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<MustNotSuspendParser> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<MustNotSuspendParser> as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<MustUseParser> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<MustUseParser> as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<OptimizeParser> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<OptimizeParser> as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<PatchableFunctionEntryParser> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<PatchableFunctionEntryParser> as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<PathAttributeParser> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<PathAttributeParser> as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<PatternComplexityLimitParser> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<PatternComplexityLimitParser> as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<ProcMacroDeriveParser> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<ProcMacroDeriveParser> as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<RecursionLimitParser> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<RecursionLimitParser> as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<ReexportTestHarnessMainParser>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<ReexportTestHarnessMainParser>> {
                                    RefCell::new(<Single<ReexportTestHarnessMainParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<ReexportTestHarnessMainParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<ReexportTestHarnessMainParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<ReexportTestHarnessMainParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<ReexportTestHarnessMainParser>>::ATTRIBUTES {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<ReexportTestHarnessMainParser> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<ReexportTestHarnessMainParser> as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<RustcAbiParser>>> =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<RustcAbiParser>> {
                                    RefCell::new(<Single<RustcAbiParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<RustcAbiParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<RustcAbiParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<RustcAbiParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<RustcAbiParser>>::ATTRIBUTES {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<RustcAbiParser> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<RustcAbiParser> as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<RustcAllocatorZeroedVariantParser> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<RustcAllocatorZeroedVariantParser>
                                                as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<RustcAutodiffParser>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<RustcAutodiffParser>> {
                                    RefCell::new(<Single<RustcAutodiffParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<RustcAutodiffParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<RustcAutodiffParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<RustcAutodiffParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<RustcAutodiffParser>>::ATTRIBUTES {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<RustcAutodiffParser> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<RustcAutodiffParser> as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<RustcBuiltinMacroParser> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<RustcBuiltinMacroParser> as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<RustcDeprecatedSafe2024Parser>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<RustcDeprecatedSafe2024Parser>> {
                                    RefCell::new(<Single<RustcDeprecatedSafe2024Parser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<RustcDeprecatedSafe2024Parser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<RustcDeprecatedSafe2024Parser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<RustcDeprecatedSafe2024Parser>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<RustcDeprecatedSafe2024Parser>>::ATTRIBUTES {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<RustcDeprecatedSafe2024Parser> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<RustcDeprecatedSafe2024Parser> as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<RustcDiagnosticItemParser>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<RustcDiagnosticItemParser>> {
                                    RefCell::new(<Single<RustcDiagnosticItemParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<RustcDiagnosticItemParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<RustcDiagnosticItemParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<RustcDiagnosticItemParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<RustcDiagnosticItemParser>>::ATTRIBUTES {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<RustcDiagnosticItemParser> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<RustcDiagnosticItemParser> as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<RustcDocPrimitiveParser>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<RustcDocPrimitiveParser>> {
                                    RefCell::new(<Single<RustcDocPrimitiveParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<RustcDocPrimitiveParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<RustcDocPrimitiveParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<RustcDocPrimitiveParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<RustcDocPrimitiveParser>>::ATTRIBUTES {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<RustcDocPrimitiveParser> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<RustcDocPrimitiveParser> as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<RustcDummyParser>>> =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<RustcDummyParser>> {
                                    RefCell::new(<Single<RustcDummyParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<RustcDummyParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<RustcDummyParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<RustcDummyParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<RustcDummyParser>>::ATTRIBUTES {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<RustcDummyParser> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<RustcDummyParser> as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<RustcDumpDefPathParser>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<RustcDumpDefPathParser>> {
                                    RefCell::new(<Single<RustcDumpDefPathParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<RustcDumpDefPathParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<RustcDumpDefPathParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<RustcDumpDefPathParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<RustcDumpDefPathParser>>::ATTRIBUTES {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<RustcDumpDefPathParser> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<RustcDumpDefPathParser> as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<RustcDumpSymbolNameParser>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<RustcDumpSymbolNameParser>> {
                                    RefCell::new(<Single<RustcDumpSymbolNameParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<RustcDumpSymbolNameParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<RustcDumpSymbolNameParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<RustcDumpSymbolNameParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<RustcDumpSymbolNameParser>>::ATTRIBUTES {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<RustcDumpSymbolNameParser> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<RustcDumpSymbolNameParser> as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<RustcForceInlineParser> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<RustcForceInlineParser> as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<RustcIfThisChangedParser>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<RustcIfThisChangedParser>> {
                                    RefCell::new(<Single<RustcIfThisChangedParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<RustcIfThisChangedParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<RustcIfThisChangedParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<RustcIfThisChangedParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<RustcIfThisChangedParser>>::ATTRIBUTES {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<RustcIfThisChangedParser> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<RustcIfThisChangedParser> as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<RustcLayoutScalarValidRangeEndParser> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<RustcLayoutScalarValidRangeEndParser>
                                                as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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
                            {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<RustcLayoutScalarValidRangeStartParser> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<RustcLayoutScalarValidRangeStartParser>
                                                as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<RustcLegacyConstGenericsParser> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<RustcLegacyConstGenericsParser> as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<RustcLintOptDenyFieldAccessParser> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<RustcLintOptDenyFieldAccessParser>
                                                as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<RustcMacroTransparencyParser>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<RustcMacroTransparencyParser>> {
                                    RefCell::new(<Single<RustcMacroTransparencyParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<RustcMacroTransparencyParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<RustcMacroTransparencyParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<RustcMacroTransparencyParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<RustcMacroTransparencyParser>>::ATTRIBUTES {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<RustcMacroTransparencyParser> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<RustcMacroTransparencyParser> as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<RustcMustImplementOneOfParser> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<RustcMustImplementOneOfParser> as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<RustcNeverTypeOptionsParser>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<RustcNeverTypeOptionsParser>> {
                                    RefCell::new(<Single<RustcNeverTypeOptionsParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<RustcNeverTypeOptionsParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<RustcNeverTypeOptionsParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<RustcNeverTypeOptionsParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<RustcNeverTypeOptionsParser>>::ATTRIBUTES {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<RustcNeverTypeOptionsParser> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<RustcNeverTypeOptionsParser> as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<RustcObjcClassParser>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<RustcObjcClassParser>> {
                                    RefCell::new(<Single<RustcObjcClassParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<RustcObjcClassParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<RustcObjcClassParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<RustcObjcClassParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<RustcObjcClassParser>>::ATTRIBUTES {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<RustcObjcClassParser> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<RustcObjcClassParser> as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<RustcObjcSelectorParser>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<RustcObjcSelectorParser>> {
                                    RefCell::new(<Single<RustcObjcSelectorParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<RustcObjcSelectorParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<RustcObjcSelectorParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<RustcObjcSelectorParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<RustcObjcSelectorParser>>::ATTRIBUTES {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<RustcObjcSelectorParser> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<RustcObjcSelectorParser> as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<RustcReservationImplParser>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<RustcReservationImplParser>> {
                                    RefCell::new(<Single<RustcReservationImplParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<RustcReservationImplParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<RustcReservationImplParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<RustcReservationImplParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<RustcReservationImplParser>>::ATTRIBUTES {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<RustcReservationImplParser> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<RustcReservationImplParser> as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<RustcScalableVectorParser> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<RustcScalableVectorParser> as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<RustcSimdMonomorphizeLaneLimitParser> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<RustcSimdMonomorphizeLaneLimitParser>
                                                as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<RustcSkipDuringMethodDispatchParser>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<RustcSkipDuringMethodDispatchParser>> {
                                    RefCell::new(<Single<RustcSkipDuringMethodDispatchParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<RustcSkipDuringMethodDispatchParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<RustcSkipDuringMethodDispatchParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<RustcSkipDuringMethodDispatchParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<RustcSkipDuringMethodDispatchParser>>::ATTRIBUTES {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<RustcSkipDuringMethodDispatchParser> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<RustcSkipDuringMethodDispatchParser>
                                                as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<RustcTestMarkerParser>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<RustcTestMarkerParser>> {
                                    RefCell::new(<Single<RustcTestMarkerParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<RustcTestMarkerParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<RustcTestMarkerParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<RustcTestMarkerParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<RustcTestMarkerParser>>::ATTRIBUTES {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<RustcTestMarkerParser> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<RustcTestMarkerParser> as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<SanitizeParser> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<SanitizeParser> as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<ShouldPanicParser> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<ShouldPanicParser> as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<TestRunnerParser>>> =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<TestRunnerParser>> {
                                    RefCell::new(<Single<TestRunnerParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<TestRunnerParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<TestRunnerParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<TestRunnerParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<TestRunnerParser>>::ATTRIBUTES {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<TestRunnerParser> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<TestRunnerParser> as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<TypeLengthLimitParser> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<TypeLengthLimitParser> as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WindowsSubsystemParser> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<WindowsSubsystemParser> as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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
                            {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<AllowInternalUnsafeParser>> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<AllowInternalUnsafeParser>>
                                                as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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
                            {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<AutomaticallyDerivedParser>> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<AutomaticallyDerivedParser>>
                                                as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<ColdParser>> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<ColdParser>> as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<CompilerBuiltinsParser>> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<CompilerBuiltinsParser>>
                                                as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<ConstContinueParser>> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<ConstContinueParser>>
                                                as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<CoroutineParser>> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<CoroutineParser>> as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<DefaultLibAllocatorParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<DefaultLibAllocatorParser>>> {
                                    RefCell::new(<Single<WithoutArgs<DefaultLibAllocatorParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<DefaultLibAllocatorParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<DefaultLibAllocatorParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<DefaultLibAllocatorParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<DefaultLibAllocatorParser>>>::ATTRIBUTES
                            {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<DefaultLibAllocatorParser>> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<DefaultLibAllocatorParser>>
                                                as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<ExportStableParser>> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<ExportStableParser>> as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<FfiConstParser>> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<FfiConstParser>> as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<FfiPureParser>> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<FfiPureParser>> as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<FundamentalParser>> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<FundamentalParser>> as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<LoopMatchParser>> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<LoopMatchParser>> as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<MacroEscapeParser>> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<MacroEscapeParser>> as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<MarkerParser>> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<MarkerParser>> as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<MayDangleParser>> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<MayDangleParser>> as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<NeedsAllocatorParser>> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<NeedsAllocatorParser>>
                                                as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<NeedsPanicRuntimeParser>> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<NeedsPanicRuntimeParser>>
                                                as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<NoBuiltinsParser>> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<NoBuiltinsParser>> as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<NoCoreParser>> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<NoCoreParser>> as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<NoImplicitPreludeParser>> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<NoImplicitPreludeParser>>
                                                as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<NoLinkParser>> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<NoLinkParser>> as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<NoMainParser>> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<NoMainParser>> as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<NoMangleParser>> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<NoMangleParser>> as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<NoStdParser>> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<NoStdParser>> as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<NonExhaustiveParser>> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<NonExhaustiveParser>>
                                                as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<PanicHandlerParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<PanicHandlerParser>>> {
                                    RefCell::new(<Single<WithoutArgs<PanicHandlerParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<PanicHandlerParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<PanicHandlerParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<PanicHandlerParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<PanicHandlerParser>>>::ATTRIBUTES {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<PanicHandlerParser>> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<PanicHandlerParser>> as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<PanicRuntimeParser>> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<PanicRuntimeParser>> as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<PinV2Parser>> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<PinV2Parser>> as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<PreludeImportParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<PreludeImportParser>>> {
                                    RefCell::new(<Single<WithoutArgs<PreludeImportParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<PreludeImportParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<PreludeImportParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<PreludeImportParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<PreludeImportParser>>>::ATTRIBUTES {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<PreludeImportParser>> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<PreludeImportParser>>
                                                as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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
                            {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<ProcMacroAttributeParser>> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<ProcMacroAttributeParser>>
                                                as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<ProcMacroParser>> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<ProcMacroParser>> as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<ProfilerRuntimeParser>> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<ProfilerRuntimeParser>>
                                                as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<RustcAllocatorParser>> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<RustcAllocatorParser>>
                                                as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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
                            {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<RustcAllocatorZeroedParser>> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<RustcAllocatorZeroedParser>>
                                                as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcAllowIncoherentImplParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    ->
                                        RefCell<Single<WithoutArgs<RustcAllowIncoherentImplParser>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcAllowIncoherentImplParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcAllowIncoherentImplParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcAllowIncoherentImplParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<RustcAllowIncoherentImplParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<RustcAllowIncoherentImplParser>>>::ATTRIBUTES
                            {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<RustcAllowIncoherentImplParser>>
                                                as crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<RustcAllowIncoherentImplParser>>
                                                as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcAsPtrParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<RustcAsPtrParser>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcAsPtrParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcAsPtrParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcAsPtrParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<RustcAsPtrParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<RustcAsPtrParser>>>::ATTRIBUTES {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<RustcAsPtrParser>> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<RustcAsPtrParser>> as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcCaptureAnalysisParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    ->
                                        RefCell<Single<WithoutArgs<RustcCaptureAnalysisParser>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcCaptureAnalysisParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcCaptureAnalysisParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcCaptureAnalysisParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<RustcCaptureAnalysisParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<RustcCaptureAnalysisParser>>>::ATTRIBUTES
                            {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<RustcCaptureAnalysisParser>> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<RustcCaptureAnalysisParser>>
                                                as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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
                            {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<RustcCoherenceIsCoreParser>> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<RustcCoherenceIsCoreParser>>
                                                as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcCoinductiveParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<RustcCoinductiveParser>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcCoinductiveParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcCoinductiveParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcCoinductiveParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<RustcCoinductiveParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<RustcCoinductiveParser>>>::ATTRIBUTES {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<RustcCoinductiveParser>> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<RustcCoinductiveParser>>
                                                as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcConstStableIndirectParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    ->
                                        RefCell<Single<WithoutArgs<RustcConstStableIndirectParser>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcConstStableIndirectParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcConstStableIndirectParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcConstStableIndirectParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<RustcConstStableIndirectParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<RustcConstStableIndirectParser>>>::ATTRIBUTES
                            {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<RustcConstStableIndirectParser>>
                                                as crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<RustcConstStableIndirectParser>>
                                                as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcConversionSuggestionParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    ->
                                        RefCell<Single<WithoutArgs<RustcConversionSuggestionParser>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcConversionSuggestionParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcConversionSuggestionParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcConversionSuggestionParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<RustcConversionSuggestionParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<RustcConversionSuggestionParser>>>::ATTRIBUTES
                            {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<RustcConversionSuggestionParser>>
                                                as crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<RustcConversionSuggestionParser>>
                                                as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<RustcDeallocatorParser>> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<RustcDeallocatorParser>>
                                                as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcDelayedBugFromInsideQueryParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    ->
                                        RefCell<Single<WithoutArgs<RustcDelayedBugFromInsideQueryParser>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcDelayedBugFromInsideQueryParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcDelayedBugFromInsideQueryParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcDelayedBugFromInsideQueryParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<RustcDelayedBugFromInsideQueryParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<RustcDelayedBugFromInsideQueryParser>>>::ATTRIBUTES
                            {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<RustcDelayedBugFromInsideQueryParser>>
                                                as crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<RustcDelayedBugFromInsideQueryParser>>
                                                as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcDenyExplicitImplParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    ->
                                        RefCell<Single<WithoutArgs<RustcDenyExplicitImplParser>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcDenyExplicitImplParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcDenyExplicitImplParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcDenyExplicitImplParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<RustcDenyExplicitImplParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<RustcDenyExplicitImplParser>>>::ATTRIBUTES
                            {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<RustcDenyExplicitImplParser>> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<RustcDenyExplicitImplParser>>
                                                as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcDoNotConstCheckParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    ->
                                        RefCell<Single<WithoutArgs<RustcDoNotConstCheckParser>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcDoNotConstCheckParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcDoNotConstCheckParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcDoNotConstCheckParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<RustcDoNotConstCheckParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<RustcDoNotConstCheckParser>>>::ATTRIBUTES
                            {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<RustcDoNotConstCheckParser>> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<RustcDoNotConstCheckParser>>
                                                as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcDumpDefParentsParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<RustcDumpDefParentsParser>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcDumpDefParentsParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcDumpDefParentsParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcDumpDefParentsParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<RustcDumpDefParentsParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<RustcDumpDefParentsParser>>>::ATTRIBUTES
                            {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<RustcDumpDefParentsParser>> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<RustcDumpDefParentsParser>>
                                                as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcDumpHiddenTypeOfOpaquesParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    ->
                                        RefCell<Single<WithoutArgs<RustcDumpHiddenTypeOfOpaquesParser>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcDumpHiddenTypeOfOpaquesParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcDumpHiddenTypeOfOpaquesParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcDumpHiddenTypeOfOpaquesParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<RustcDumpHiddenTypeOfOpaquesParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<RustcDumpHiddenTypeOfOpaquesParser>>>::ATTRIBUTES
                            {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<RustcDumpHiddenTypeOfOpaquesParser>>
                                                as crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<RustcDumpHiddenTypeOfOpaquesParser>>
                                                as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcDumpInferredOutlivesParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    ->
                                        RefCell<Single<WithoutArgs<RustcDumpInferredOutlivesParser>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcDumpInferredOutlivesParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcDumpInferredOutlivesParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcDumpInferredOutlivesParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<RustcDumpInferredOutlivesParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<RustcDumpInferredOutlivesParser>>>::ATTRIBUTES
                            {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<RustcDumpInferredOutlivesParser>>
                                                as crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<RustcDumpInferredOutlivesParser>>
                                                as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcDumpItemBoundsParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<RustcDumpItemBoundsParser>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcDumpItemBoundsParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcDumpItemBoundsParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcDumpItemBoundsParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<RustcDumpItemBoundsParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<RustcDumpItemBoundsParser>>>::ATTRIBUTES
                            {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<RustcDumpItemBoundsParser>> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<RustcDumpItemBoundsParser>>
                                                as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcDumpObjectLifetimeDefaultsParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    ->
                                        RefCell<Single<WithoutArgs<RustcDumpObjectLifetimeDefaultsParser>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcDumpObjectLifetimeDefaultsParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcDumpObjectLifetimeDefaultsParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcDumpObjectLifetimeDefaultsParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<RustcDumpObjectLifetimeDefaultsParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<RustcDumpObjectLifetimeDefaultsParser>>>::ATTRIBUTES
                            {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<RustcDumpObjectLifetimeDefaultsParser>>
                                                as crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<RustcDumpObjectLifetimeDefaultsParser>>
                                                as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcDumpPredicatesParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<RustcDumpPredicatesParser>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcDumpPredicatesParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcDumpPredicatesParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcDumpPredicatesParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<RustcDumpPredicatesParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<RustcDumpPredicatesParser>>>::ATTRIBUTES
                            {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<RustcDumpPredicatesParser>> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<RustcDumpPredicatesParser>>
                                                as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcDumpUserArgsParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<RustcDumpUserArgsParser>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcDumpUserArgsParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcDumpUserArgsParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcDumpUserArgsParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<RustcDumpUserArgsParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<RustcDumpUserArgsParser>>>::ATTRIBUTES {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<RustcDumpUserArgsParser>> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<RustcDumpUserArgsParser>>
                                                as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcDumpVariancesOfOpaquesParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    ->
                                        RefCell<Single<WithoutArgs<RustcDumpVariancesOfOpaquesParser>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcDumpVariancesOfOpaquesParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcDumpVariancesOfOpaquesParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcDumpVariancesOfOpaquesParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<RustcDumpVariancesOfOpaquesParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<RustcDumpVariancesOfOpaquesParser>>>::ATTRIBUTES
                            {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<RustcDumpVariancesOfOpaquesParser>>
                                                as crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<RustcDumpVariancesOfOpaquesParser>>
                                                as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcDumpVariancesParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<RustcDumpVariancesParser>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcDumpVariancesParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcDumpVariancesParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcDumpVariancesParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<RustcDumpVariancesParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<RustcDumpVariancesParser>>>::ATTRIBUTES
                            {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<RustcDumpVariancesParser>> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<RustcDumpVariancesParser>>
                                                as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcDumpVtableParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<RustcDumpVtableParser>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcDumpVtableParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcDumpVtableParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcDumpVtableParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<RustcDumpVtableParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<RustcDumpVtableParser>>>::ATTRIBUTES {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<RustcDumpVtableParser>> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<RustcDumpVtableParser>>
                                                as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcDynIncompatibleTraitParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    ->
                                        RefCell<Single<WithoutArgs<RustcDynIncompatibleTraitParser>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcDynIncompatibleTraitParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcDynIncompatibleTraitParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcDynIncompatibleTraitParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<RustcDynIncompatibleTraitParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<RustcDynIncompatibleTraitParser>>>::ATTRIBUTES
                            {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<RustcDynIncompatibleTraitParser>>
                                                as crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<RustcDynIncompatibleTraitParser>>
                                                as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcEffectiveVisibilityParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    ->
                                        RefCell<Single<WithoutArgs<RustcEffectiveVisibilityParser>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcEffectiveVisibilityParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcEffectiveVisibilityParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcEffectiveVisibilityParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<RustcEffectiveVisibilityParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<RustcEffectiveVisibilityParser>>>::ATTRIBUTES
                            {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<RustcEffectiveVisibilityParser>>
                                                as crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<RustcEffectiveVisibilityParser>>
                                                as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcEiiForeignItemParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<RustcEiiForeignItemParser>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcEiiForeignItemParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcEiiForeignItemParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcEiiForeignItemParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<RustcEiiForeignItemParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<RustcEiiForeignItemParser>>>::ATTRIBUTES
                            {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<RustcEiiForeignItemParser>> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<RustcEiiForeignItemParser>>
                                                as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcEvaluateWhereClausesParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    ->
                                        RefCell<Single<WithoutArgs<RustcEvaluateWhereClausesParser>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcEvaluateWhereClausesParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcEvaluateWhereClausesParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcEvaluateWhereClausesParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<RustcEvaluateWhereClausesParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<RustcEvaluateWhereClausesParser>>>::ATTRIBUTES
                            {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<RustcEvaluateWhereClausesParser>>
                                                as crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<RustcEvaluateWhereClausesParser>>
                                                as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcExhaustiveParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<RustcExhaustiveParser>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcExhaustiveParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcExhaustiveParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcExhaustiveParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<RustcExhaustiveParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<RustcExhaustiveParser>>>::ATTRIBUTES {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<RustcExhaustiveParser>> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<RustcExhaustiveParser>>
                                                as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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
                            {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<RustcHasIncoherentInherentImplsParser>>
                                                as crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<RustcHasIncoherentInherentImplsParser>>
                                                as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcInheritOverflowChecksParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    ->
                                        RefCell<Single<WithoutArgs<RustcInheritOverflowChecksParser>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcInheritOverflowChecksParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcInheritOverflowChecksParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcInheritOverflowChecksParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<RustcInheritOverflowChecksParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<RustcInheritOverflowChecksParser>>>::ATTRIBUTES
                            {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<RustcInheritOverflowChecksParser>>
                                                as crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<RustcInheritOverflowChecksParser>>
                                                as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcInsignificantDtorParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    ->
                                        RefCell<Single<WithoutArgs<RustcInsignificantDtorParser>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcInsignificantDtorParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcInsignificantDtorParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcInsignificantDtorParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<RustcInsignificantDtorParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<RustcInsignificantDtorParser>>>::ATTRIBUTES
                            {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<RustcInsignificantDtorParser>>
                                                as crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<RustcInsignificantDtorParser>>
                                                as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcIntrinsicConstStableIndirectParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    ->
                                        RefCell<Single<WithoutArgs<RustcIntrinsicConstStableIndirectParser>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcIntrinsicConstStableIndirectParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcIntrinsicConstStableIndirectParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcIntrinsicConstStableIndirectParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<RustcIntrinsicConstStableIndirectParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<RustcIntrinsicConstStableIndirectParser>>>::ATTRIBUTES
                            {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<RustcIntrinsicConstStableIndirectParser>>
                                                as crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<RustcIntrinsicConstStableIndirectParser>>
                                                as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcIntrinsicParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<RustcIntrinsicParser>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcIntrinsicParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcIntrinsicParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcIntrinsicParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<RustcIntrinsicParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<RustcIntrinsicParser>>>::ATTRIBUTES {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<RustcIntrinsicParser>> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<RustcIntrinsicParser>>
                                                as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<RustcLintOptTyParser>> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<RustcLintOptTyParser>>
                                                as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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
                            {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<RustcLintQueryInstabilityParser>>
                                                as crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<RustcLintQueryInstabilityParser>>
                                                as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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
                            {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<RustcLintUntrackedQueryInformationParser>>
                                                as crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<RustcLintUntrackedQueryInformationParser>>
                                                as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<RustcMainParser>> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<RustcMainParser>> as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcNeverReturnsNullPtrParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    ->
                                        RefCell<Single<WithoutArgs<RustcNeverReturnsNullPtrParser>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcNeverReturnsNullPtrParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcNeverReturnsNullPtrParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcNeverReturnsNullPtrParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<RustcNeverReturnsNullPtrParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<RustcNeverReturnsNullPtrParser>>>::ATTRIBUTES
                            {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<RustcNeverReturnsNullPtrParser>>
                                                as crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<RustcNeverReturnsNullPtrParser>>
                                                as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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
                            {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<RustcNoImplicitAutorefsParser>>
                                                as crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<RustcNoImplicitAutorefsParser>>
                                                as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcNoImplicitBoundsParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    ->
                                        RefCell<Single<WithoutArgs<RustcNoImplicitBoundsParser>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcNoImplicitBoundsParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcNoImplicitBoundsParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcNoImplicitBoundsParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<RustcNoImplicitBoundsParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<RustcNoImplicitBoundsParser>>>::ATTRIBUTES
                            {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<RustcNoImplicitBoundsParser>> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<RustcNoImplicitBoundsParser>>
                                                as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcNoMirInlineParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<RustcNoMirInlineParser>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcNoMirInlineParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcNoMirInlineParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcNoMirInlineParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<RustcNoMirInlineParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<RustcNoMirInlineParser>>>::ATTRIBUTES {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<RustcNoMirInlineParser>> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<RustcNoMirInlineParser>>
                                                as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcNoWritableParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<RustcNoWritableParser>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcNoWritableParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcNoWritableParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcNoWritableParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<RustcNoWritableParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<RustcNoWritableParser>>>::ATTRIBUTES {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<RustcNoWritableParser>> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<RustcNoWritableParser>>
                                                as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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
                            {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<RustcNonConstTraitMethodParser>>
                                                as crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<RustcNonConstTraitMethodParser>>
                                                as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcNonnullOptimizationGuaranteedParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    ->
                                        RefCell<Single<WithoutArgs<RustcNonnullOptimizationGuaranteedParser>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcNonnullOptimizationGuaranteedParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcNonnullOptimizationGuaranteedParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcNonnullOptimizationGuaranteedParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<RustcNonnullOptimizationGuaranteedParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<RustcNonnullOptimizationGuaranteedParser>>>::ATTRIBUTES
                            {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<RustcNonnullOptimizationGuaranteedParser>>
                                                as crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<RustcNonnullOptimizationGuaranteedParser>>
                                                as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<RustcNounwindParser>> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<RustcNounwindParser>>
                                                as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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
                            {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<RustcOffloadKernelParser>> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<RustcOffloadKernelParser>>
                                                as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcParenSugarParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<RustcParenSugarParser>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcParenSugarParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcParenSugarParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcParenSugarParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<RustcParenSugarParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<RustcParenSugarParser>>>::ATTRIBUTES {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<RustcParenSugarParser>> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<RustcParenSugarParser>>
                                                as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcPassByValueParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<RustcPassByValueParser>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcPassByValueParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcPassByValueParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcPassByValueParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<RustcPassByValueParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<RustcPassByValueParser>>>::ATTRIBUTES {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<RustcPassByValueParser>> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<RustcPassByValueParser>>
                                                as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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
                            {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<RustcPassIndirectlyInNonRusticAbisParser>>
                                                as crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<RustcPassIndirectlyInNonRusticAbisParser>>
                                                as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcPreserveUbChecksParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    ->
                                        RefCell<Single<WithoutArgs<RustcPreserveUbChecksParser>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcPreserveUbChecksParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcPreserveUbChecksParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcPreserveUbChecksParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<RustcPreserveUbChecksParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<RustcPreserveUbChecksParser>>>::ATTRIBUTES
                            {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<RustcPreserveUbChecksParser>> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<RustcPreserveUbChecksParser>>
                                                as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcProcMacroDeclsParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<RustcProcMacroDeclsParser>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcProcMacroDeclsParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcProcMacroDeclsParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcProcMacroDeclsParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<RustcProcMacroDeclsParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<RustcProcMacroDeclsParser>>>::ATTRIBUTES
                            {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<RustcProcMacroDeclsParser>> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<RustcProcMacroDeclsParser>>
                                                as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcPubTransparentParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<RustcPubTransparentParser>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcPubTransparentParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcPubTransparentParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcPubTransparentParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<RustcPubTransparentParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<RustcPubTransparentParser>>>::ATTRIBUTES
                            {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<RustcPubTransparentParser>> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<RustcPubTransparentParser>>
                                                as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<RustcReallocatorParser>> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<RustcReallocatorParser>>
                                                as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcRegionsParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<RustcRegionsParser>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcRegionsParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcRegionsParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcRegionsParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<RustcRegionsParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<RustcRegionsParser>>>::ATTRIBUTES {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<RustcRegionsParser>> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<RustcRegionsParser>> as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcShouldNotBeCalledOnConstItemsParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    ->
                                        RefCell<Single<WithoutArgs<RustcShouldNotBeCalledOnConstItemsParser>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcShouldNotBeCalledOnConstItemsParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcShouldNotBeCalledOnConstItemsParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcShouldNotBeCalledOnConstItemsParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<RustcShouldNotBeCalledOnConstItemsParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<RustcShouldNotBeCalledOnConstItemsParser>>>::ATTRIBUTES
                            {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<RustcShouldNotBeCalledOnConstItemsParser>>
                                                as crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<RustcShouldNotBeCalledOnConstItemsParser>>
                                                as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcSpecializationTraitParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    ->
                                        RefCell<Single<WithoutArgs<RustcSpecializationTraitParser>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcSpecializationTraitParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcSpecializationTraitParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcSpecializationTraitParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<RustcSpecializationTraitParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<RustcSpecializationTraitParser>>>::ATTRIBUTES
                            {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<RustcSpecializationTraitParser>>
                                                as crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<RustcSpecializationTraitParser>>
                                                as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcStdInternalSymbolParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    ->
                                        RefCell<Single<WithoutArgs<RustcStdInternalSymbolParser>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcStdInternalSymbolParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcStdInternalSymbolParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcStdInternalSymbolParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<RustcStdInternalSymbolParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<RustcStdInternalSymbolParser>>>::ATTRIBUTES
                            {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<RustcStdInternalSymbolParser>>
                                                as crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<RustcStdInternalSymbolParser>>
                                                as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcStrictCoherenceParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    ->
                                        RefCell<Single<WithoutArgs<RustcStrictCoherenceParser>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcStrictCoherenceParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcStrictCoherenceParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcStrictCoherenceParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<RustcStrictCoherenceParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<RustcStrictCoherenceParser>>>::ATTRIBUTES
                            {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<RustcStrictCoherenceParser>> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<RustcStrictCoherenceParser>>
                                                as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcTrivialFieldReadsParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    ->
                                        RefCell<Single<WithoutArgs<RustcTrivialFieldReadsParser>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcTrivialFieldReadsParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcTrivialFieldReadsParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcTrivialFieldReadsParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<RustcTrivialFieldReadsParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<RustcTrivialFieldReadsParser>>>::ATTRIBUTES
                            {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<RustcTrivialFieldReadsParser>>
                                                as crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<RustcTrivialFieldReadsParser>>
                                                as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcUnsafeSpecializationMarkerParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    ->
                                        RefCell<Single<WithoutArgs<RustcUnsafeSpecializationMarkerParser>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcUnsafeSpecializationMarkerParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcUnsafeSpecializationMarkerParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcUnsafeSpecializationMarkerParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<RustcUnsafeSpecializationMarkerParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<RustcUnsafeSpecializationMarkerParser>>>::ATTRIBUTES
                            {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<RustcUnsafeSpecializationMarkerParser>>
                                                as crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<RustcUnsafeSpecializationMarkerParser>>
                                                as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<ThreadLocalParser>> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<ThreadLocalParser>> as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<TrackCallerParser>> as
                                                crate::attributes::AttributeParser<Early>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<TrackCallerParser>> as
                                                crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    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::<_, GroupTypeInnerAccept<Late>>::new();
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <BodyStabilityParser as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <BodyStabilityParser as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <ConfusablesParser as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <ConfusablesParser as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <ConstStabilityParser as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <ConstStabilityParser as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <DocParser as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <DocParser as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <MacroUseParser as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <MacroUseParser as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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
                            {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <NakedParser as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <NakedParser as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<OnConstParser>> =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn() -> RefCell<OnConstParser> {
                                    RefCell::new(<OnConstParser>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<OnConstParser>>() {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<OnConstParser>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<OnConstParser>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <OnConstParser>::ATTRIBUTES {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <OnConstParser as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <OnConstParser as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<OnMoveParser>> =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn() -> RefCell<OnMoveParser> {
                                    RefCell::new(<OnMoveParser>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<OnMoveParser>>() {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<OnMoveParser>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<OnMoveParser>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <OnMoveParser>::ATTRIBUTES {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <OnMoveParser as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <OnMoveParser as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<OnUnimplementedParser>> =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<OnUnimplementedParser> {
                                    RefCell::new(<OnUnimplementedParser>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<OnUnimplementedParser>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<OnUnimplementedParser>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<OnUnimplementedParser>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <OnUnimplementedParser>::ATTRIBUTES {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <OnUnimplementedParser as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <OnUnimplementedParser as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<OnUnknownParser>> =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<OnUnknownParser> {
                                    RefCell::new(<OnUnknownParser>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<OnUnknownParser>>() {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<OnUnknownParser>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<OnUnknownParser>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <OnUnknownParser>::ATTRIBUTES {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <OnUnknownParser as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <OnUnknownParser as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<RustcAlignParser>> =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<RustcAlignParser> {
                                    RefCell::new(<RustcAlignParser>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<RustcAlignParser>>() {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<RustcAlignParser>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<RustcAlignParser>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <RustcAlignParser>::ATTRIBUTES {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <RustcAlignParser as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <RustcAlignParser as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<RustcAlignStaticParser>> =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<RustcAlignStaticParser> {
                                    RefCell::new(<RustcAlignStaticParser>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<RustcAlignStaticParser>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<RustcAlignStaticParser>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<RustcAlignStaticParser>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <RustcAlignStaticParser>::ATTRIBUTES {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <RustcAlignStaticParser as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <RustcAlignStaticParser as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<RustcCguTestAttributeParser>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<RustcCguTestAttributeParser> {
                                    RefCell::new(<RustcCguTestAttributeParser>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<RustcCguTestAttributeParser>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<RustcCguTestAttributeParser>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                } else {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<RustcCguTestAttributeParser>,
                                                                !> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
                                                                __rust_std_internal_init_fn)
                                                        }
                                                }
                                            })
                                }
                            };
                        for (path, template, accept_fn) in
                            <RustcCguTestAttributeParser>::ATTRIBUTES {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <RustcCguTestAttributeParser as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <RustcCguTestAttributeParser as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <StabilityParser as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <StabilityParser as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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
                            {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <UsedParser as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <UsedParser as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Combine<AllowInternalUnstableParser> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Combine<AllowInternalUnstableParser> as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Combine<CrateTypeParser> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Combine<CrateTypeParser> as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Combine<DebuggerViualizerParser> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Combine<DebuggerViualizerParser> as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Combine<FeatureParser>>> =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Combine<FeatureParser>> {
                                    RefCell::new(<Combine<FeatureParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Combine<FeatureParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Combine<FeatureParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<FeatureParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<FeatureParser>>::ATTRIBUTES {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Combine<FeatureParser> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Combine<FeatureParser> as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Combine<ForceTargetFeatureParser> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Combine<ForceTargetFeatureParser> as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Combine<LinkParser> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Combine<LinkParser> as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Combine<RegisterToolParser>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Combine<RegisterToolParser>> {
                                    RefCell::new(<Combine<RegisterToolParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Combine<RegisterToolParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Combine<RegisterToolParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<RegisterToolParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<RegisterToolParser>>::ATTRIBUTES {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Combine<RegisterToolParser> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Combine<RegisterToolParser> as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Combine<ReprParser> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Combine<ReprParser> as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Combine<RustcAllowConstFnUnstableParser>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Combine<RustcAllowConstFnUnstableParser>> {
                                    RefCell::new(<Combine<RustcAllowConstFnUnstableParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Combine<RustcAllowConstFnUnstableParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Combine<RustcAllowConstFnUnstableParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<RustcAllowConstFnUnstableParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<RustcAllowConstFnUnstableParser>>::ATTRIBUTES {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Combine<RustcAllowConstFnUnstableParser> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Combine<RustcAllowConstFnUnstableParser>
                                                as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Combine<RustcCleanParser>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Combine<RustcCleanParser>> {
                                    RefCell::new(<Combine<RustcCleanParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Combine<RustcCleanParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Combine<RustcCleanParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<RustcCleanParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<RustcCleanParser>>::ATTRIBUTES {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Combine<RustcCleanParser> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Combine<RustcCleanParser> as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Combine<RustcDumpLayoutParser>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Combine<RustcDumpLayoutParser>> {
                                    RefCell::new(<Combine<RustcDumpLayoutParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Combine<RustcDumpLayoutParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Combine<RustcDumpLayoutParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<RustcDumpLayoutParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<RustcDumpLayoutParser>>::ATTRIBUTES {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Combine<RustcDumpLayoutParser> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Combine<RustcDumpLayoutParser> as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Combine<RustcMirParser>>> =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Combine<RustcMirParser>> {
                                    RefCell::new(<Combine<RustcMirParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Combine<RustcMirParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Combine<RustcMirParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<RustcMirParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<RustcMirParser>>::ATTRIBUTES {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Combine<RustcMirParser> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Combine<RustcMirParser> as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Combine<RustcThenThisWouldNeedParser>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Combine<RustcThenThisWouldNeedParser>> {
                                    RefCell::new(<Combine<RustcThenThisWouldNeedParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Combine<RustcThenThisWouldNeedParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Combine<RustcThenThisWouldNeedParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<RustcThenThisWouldNeedParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<RustcThenThisWouldNeedParser>>::ATTRIBUTES {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Combine<RustcThenThisWouldNeedParser> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Combine<RustcThenThisWouldNeedParser> as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Combine<TargetFeatureParser> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Combine<TargetFeatureParser> as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Combine<UnstableFeatureBoundParser> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Combine<UnstableFeatureBoundParser> as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Combine<UnstableRemovedParser>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Combine<UnstableRemovedParser>> {
                                    RefCell::new(<Combine<UnstableRemovedParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Combine<UnstableRemovedParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Combine<UnstableRemovedParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<UnstableRemovedParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<UnstableRemovedParser>>::ATTRIBUTES {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Combine<UnstableRemovedParser> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Combine<UnstableRemovedParser> as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<CfiEncodingParser> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<CfiEncodingParser> as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<CollapseDebugInfoParser> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<CollapseDebugInfoParser> as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<CoverageParser> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<CoverageParser> as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<CrateNameParser> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<CrateNameParser> as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<CustomMirParser> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<CustomMirParser> as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<DeprecatedParser>>> =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<DeprecatedParser>> {
                                    RefCell::new(<Single<DeprecatedParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<DeprecatedParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<DeprecatedParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<DeprecatedParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<DeprecatedParser>>::ATTRIBUTES {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<DeprecatedParser> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<DeprecatedParser> as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<DoNotRecommendParser> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<DoNotRecommendParser> as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<ExportNameParser> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<ExportNameParser> as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<IgnoreParser> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<IgnoreParser> as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<InlineParser> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<InlineParser> as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<InstructionSetParser> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<InstructionSetParser> as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<LangParser>>> =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<LangParser>> {
                                    RefCell::new(<Single<LangParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<LangParser>>>() {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<LangParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<LangParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<LangParser>>::ATTRIBUTES {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<LangParser> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<LangParser> as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<LinkNameParser> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<LinkNameParser> as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<LinkOrdinalParser> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<LinkOrdinalParser> as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<LinkSectionParser> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<LinkSectionParser> as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<LinkageParser> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<LinkageParser> as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<MacroExportParser> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<MacroExportParser> as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<MoveSizeLimitParser> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<MoveSizeLimitParser> as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<MustNotSuspendParser> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<MustNotSuspendParser> as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<MustUseParser> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<MustUseParser> as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<OptimizeParser> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<OptimizeParser> as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<PatchableFunctionEntryParser> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<PatchableFunctionEntryParser> as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<PathAttributeParser> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<PathAttributeParser> as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<PatternComplexityLimitParser> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<PatternComplexityLimitParser> as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<ProcMacroDeriveParser> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<ProcMacroDeriveParser> as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<RecursionLimitParser> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<RecursionLimitParser> as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<ReexportTestHarnessMainParser>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<ReexportTestHarnessMainParser>> {
                                    RefCell::new(<Single<ReexportTestHarnessMainParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<ReexportTestHarnessMainParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<ReexportTestHarnessMainParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<ReexportTestHarnessMainParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<ReexportTestHarnessMainParser>>::ATTRIBUTES {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<ReexportTestHarnessMainParser> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<ReexportTestHarnessMainParser> as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<RustcAbiParser>>> =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<RustcAbiParser>> {
                                    RefCell::new(<Single<RustcAbiParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<RustcAbiParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<RustcAbiParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<RustcAbiParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<RustcAbiParser>>::ATTRIBUTES {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<RustcAbiParser> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<RustcAbiParser> as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<RustcAllocatorZeroedVariantParser> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<RustcAllocatorZeroedVariantParser>
                                                as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<RustcAutodiffParser>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<RustcAutodiffParser>> {
                                    RefCell::new(<Single<RustcAutodiffParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<RustcAutodiffParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<RustcAutodiffParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<RustcAutodiffParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<RustcAutodiffParser>>::ATTRIBUTES {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<RustcAutodiffParser> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<RustcAutodiffParser> as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<RustcBuiltinMacroParser> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<RustcBuiltinMacroParser> as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<RustcDeprecatedSafe2024Parser>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<RustcDeprecatedSafe2024Parser>> {
                                    RefCell::new(<Single<RustcDeprecatedSafe2024Parser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<RustcDeprecatedSafe2024Parser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<RustcDeprecatedSafe2024Parser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<RustcDeprecatedSafe2024Parser>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<RustcDeprecatedSafe2024Parser>>::ATTRIBUTES {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<RustcDeprecatedSafe2024Parser> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<RustcDeprecatedSafe2024Parser> as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<RustcDiagnosticItemParser>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<RustcDiagnosticItemParser>> {
                                    RefCell::new(<Single<RustcDiagnosticItemParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<RustcDiagnosticItemParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<RustcDiagnosticItemParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<RustcDiagnosticItemParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<RustcDiagnosticItemParser>>::ATTRIBUTES {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<RustcDiagnosticItemParser> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<RustcDiagnosticItemParser> as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<RustcDocPrimitiveParser>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<RustcDocPrimitiveParser>> {
                                    RefCell::new(<Single<RustcDocPrimitiveParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<RustcDocPrimitiveParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<RustcDocPrimitiveParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<RustcDocPrimitiveParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<RustcDocPrimitiveParser>>::ATTRIBUTES {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<RustcDocPrimitiveParser> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<RustcDocPrimitiveParser> as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<RustcDummyParser>>> =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<RustcDummyParser>> {
                                    RefCell::new(<Single<RustcDummyParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<RustcDummyParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<RustcDummyParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<RustcDummyParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<RustcDummyParser>>::ATTRIBUTES {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<RustcDummyParser> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<RustcDummyParser> as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<RustcDumpDefPathParser>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<RustcDumpDefPathParser>> {
                                    RefCell::new(<Single<RustcDumpDefPathParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<RustcDumpDefPathParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<RustcDumpDefPathParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<RustcDumpDefPathParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<RustcDumpDefPathParser>>::ATTRIBUTES {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<RustcDumpDefPathParser> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<RustcDumpDefPathParser> as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<RustcDumpSymbolNameParser>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<RustcDumpSymbolNameParser>> {
                                    RefCell::new(<Single<RustcDumpSymbolNameParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<RustcDumpSymbolNameParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<RustcDumpSymbolNameParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<RustcDumpSymbolNameParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<RustcDumpSymbolNameParser>>::ATTRIBUTES {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<RustcDumpSymbolNameParser> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<RustcDumpSymbolNameParser> as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<RustcForceInlineParser> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<RustcForceInlineParser> as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<RustcIfThisChangedParser>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<RustcIfThisChangedParser>> {
                                    RefCell::new(<Single<RustcIfThisChangedParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<RustcIfThisChangedParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<RustcIfThisChangedParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<RustcIfThisChangedParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<RustcIfThisChangedParser>>::ATTRIBUTES {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<RustcIfThisChangedParser> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<RustcIfThisChangedParser> as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<RustcLayoutScalarValidRangeEndParser> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<RustcLayoutScalarValidRangeEndParser>
                                                as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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
                            {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<RustcLayoutScalarValidRangeStartParser> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<RustcLayoutScalarValidRangeStartParser>
                                                as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<RustcLegacyConstGenericsParser> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<RustcLegacyConstGenericsParser> as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<RustcLintOptDenyFieldAccessParser> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<RustcLintOptDenyFieldAccessParser>
                                                as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<RustcMacroTransparencyParser>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<RustcMacroTransparencyParser>> {
                                    RefCell::new(<Single<RustcMacroTransparencyParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<RustcMacroTransparencyParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<RustcMacroTransparencyParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<RustcMacroTransparencyParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<RustcMacroTransparencyParser>>::ATTRIBUTES {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<RustcMacroTransparencyParser> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<RustcMacroTransparencyParser> as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<RustcMustImplementOneOfParser> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<RustcMustImplementOneOfParser> as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<RustcNeverTypeOptionsParser>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<RustcNeverTypeOptionsParser>> {
                                    RefCell::new(<Single<RustcNeverTypeOptionsParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<RustcNeverTypeOptionsParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<RustcNeverTypeOptionsParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<RustcNeverTypeOptionsParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<RustcNeverTypeOptionsParser>>::ATTRIBUTES {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<RustcNeverTypeOptionsParser> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<RustcNeverTypeOptionsParser> as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<RustcObjcClassParser>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<RustcObjcClassParser>> {
                                    RefCell::new(<Single<RustcObjcClassParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<RustcObjcClassParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<RustcObjcClassParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<RustcObjcClassParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<RustcObjcClassParser>>::ATTRIBUTES {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<RustcObjcClassParser> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<RustcObjcClassParser> as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<RustcObjcSelectorParser>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<RustcObjcSelectorParser>> {
                                    RefCell::new(<Single<RustcObjcSelectorParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<RustcObjcSelectorParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<RustcObjcSelectorParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<RustcObjcSelectorParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<RustcObjcSelectorParser>>::ATTRIBUTES {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<RustcObjcSelectorParser> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<RustcObjcSelectorParser> as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<RustcReservationImplParser>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<RustcReservationImplParser>> {
                                    RefCell::new(<Single<RustcReservationImplParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<RustcReservationImplParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<RustcReservationImplParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<RustcReservationImplParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<RustcReservationImplParser>>::ATTRIBUTES {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<RustcReservationImplParser> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<RustcReservationImplParser> as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<RustcScalableVectorParser> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<RustcScalableVectorParser> as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<RustcSimdMonomorphizeLaneLimitParser> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<RustcSimdMonomorphizeLaneLimitParser>
                                                as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<RustcSkipDuringMethodDispatchParser>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<RustcSkipDuringMethodDispatchParser>> {
                                    RefCell::new(<Single<RustcSkipDuringMethodDispatchParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<RustcSkipDuringMethodDispatchParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<RustcSkipDuringMethodDispatchParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<RustcSkipDuringMethodDispatchParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<RustcSkipDuringMethodDispatchParser>>::ATTRIBUTES {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<RustcSkipDuringMethodDispatchParser> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<RustcSkipDuringMethodDispatchParser>
                                                as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<RustcTestMarkerParser>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<RustcTestMarkerParser>> {
                                    RefCell::new(<Single<RustcTestMarkerParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<RustcTestMarkerParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<RustcTestMarkerParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<RustcTestMarkerParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<RustcTestMarkerParser>>::ATTRIBUTES {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<RustcTestMarkerParser> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<RustcTestMarkerParser> as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<SanitizeParser> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<SanitizeParser> as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<ShouldPanicParser> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<ShouldPanicParser> as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<TestRunnerParser>>> =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<TestRunnerParser>> {
                                    RefCell::new(<Single<TestRunnerParser>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<TestRunnerParser>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<TestRunnerParser>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<TestRunnerParser>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<TestRunnerParser>>::ATTRIBUTES {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<TestRunnerParser> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<TestRunnerParser> as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<TypeLengthLimitParser> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<TypeLengthLimitParser> as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WindowsSubsystemParser> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<WindowsSubsystemParser> as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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
                            {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<AllowInternalUnsafeParser>> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<AllowInternalUnsafeParser>>
                                                as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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
                            {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<AutomaticallyDerivedParser>> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<AutomaticallyDerivedParser>>
                                                as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<ColdParser>> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<ColdParser>> as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<CompilerBuiltinsParser>> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<CompilerBuiltinsParser>>
                                                as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<ConstContinueParser>> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<ConstContinueParser>>
                                                as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<CoroutineParser>> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<CoroutineParser>> as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<DefaultLibAllocatorParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<DefaultLibAllocatorParser>>> {
                                    RefCell::new(<Single<WithoutArgs<DefaultLibAllocatorParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<DefaultLibAllocatorParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<DefaultLibAllocatorParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<DefaultLibAllocatorParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<DefaultLibAllocatorParser>>>::ATTRIBUTES
                            {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<DefaultLibAllocatorParser>> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<DefaultLibAllocatorParser>>
                                                as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<ExportStableParser>> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<ExportStableParser>> as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<FfiConstParser>> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<FfiConstParser>> as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<FfiPureParser>> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<FfiPureParser>> as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<FundamentalParser>> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<FundamentalParser>> as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<LoopMatchParser>> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<LoopMatchParser>> as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<MacroEscapeParser>> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<MacroEscapeParser>> as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<MarkerParser>> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<MarkerParser>> as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<MayDangleParser>> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<MayDangleParser>> as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<NeedsAllocatorParser>> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<NeedsAllocatorParser>>
                                                as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<NeedsPanicRuntimeParser>> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<NeedsPanicRuntimeParser>>
                                                as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<NoBuiltinsParser>> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<NoBuiltinsParser>> as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<NoCoreParser>> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<NoCoreParser>> as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<NoImplicitPreludeParser>> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<NoImplicitPreludeParser>>
                                                as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<NoLinkParser>> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<NoLinkParser>> as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<NoMainParser>> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<NoMainParser>> as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<NoMangleParser>> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<NoMangleParser>> as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<NoStdParser>> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<NoStdParser>> as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<NonExhaustiveParser>> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<NonExhaustiveParser>>
                                                as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<PanicHandlerParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<PanicHandlerParser>>> {
                                    RefCell::new(<Single<WithoutArgs<PanicHandlerParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<PanicHandlerParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<PanicHandlerParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<PanicHandlerParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<PanicHandlerParser>>>::ATTRIBUTES {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<PanicHandlerParser>> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<PanicHandlerParser>> as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<PanicRuntimeParser>> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<PanicRuntimeParser>> as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<PinV2Parser>> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<PinV2Parser>> as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<PreludeImportParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<PreludeImportParser>>> {
                                    RefCell::new(<Single<WithoutArgs<PreludeImportParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<PreludeImportParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<PreludeImportParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<PreludeImportParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<PreludeImportParser>>>::ATTRIBUTES {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<PreludeImportParser>> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<PreludeImportParser>>
                                                as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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
                            {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<ProcMacroAttributeParser>> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<ProcMacroAttributeParser>>
                                                as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<ProcMacroParser>> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<ProcMacroParser>> as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<ProfilerRuntimeParser>> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<ProfilerRuntimeParser>>
                                                as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<RustcAllocatorParser>> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<RustcAllocatorParser>>
                                                as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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
                            {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<RustcAllocatorZeroedParser>> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<RustcAllocatorZeroedParser>>
                                                as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcAllowIncoherentImplParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    ->
                                        RefCell<Single<WithoutArgs<RustcAllowIncoherentImplParser>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcAllowIncoherentImplParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcAllowIncoherentImplParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcAllowIncoherentImplParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<RustcAllowIncoherentImplParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<RustcAllowIncoherentImplParser>>>::ATTRIBUTES
                            {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<RustcAllowIncoherentImplParser>>
                                                as crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<RustcAllowIncoherentImplParser>>
                                                as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcAsPtrParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<RustcAsPtrParser>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcAsPtrParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcAsPtrParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcAsPtrParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<RustcAsPtrParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<RustcAsPtrParser>>>::ATTRIBUTES {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<RustcAsPtrParser>> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<RustcAsPtrParser>> as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcCaptureAnalysisParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    ->
                                        RefCell<Single<WithoutArgs<RustcCaptureAnalysisParser>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcCaptureAnalysisParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcCaptureAnalysisParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcCaptureAnalysisParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<RustcCaptureAnalysisParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<RustcCaptureAnalysisParser>>>::ATTRIBUTES
                            {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<RustcCaptureAnalysisParser>> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<RustcCaptureAnalysisParser>>
                                                as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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
                            {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<RustcCoherenceIsCoreParser>> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<RustcCoherenceIsCoreParser>>
                                                as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcCoinductiveParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<RustcCoinductiveParser>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcCoinductiveParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcCoinductiveParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcCoinductiveParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<RustcCoinductiveParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<RustcCoinductiveParser>>>::ATTRIBUTES {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<RustcCoinductiveParser>> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<RustcCoinductiveParser>>
                                                as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcConstStableIndirectParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    ->
                                        RefCell<Single<WithoutArgs<RustcConstStableIndirectParser>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcConstStableIndirectParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcConstStableIndirectParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcConstStableIndirectParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<RustcConstStableIndirectParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<RustcConstStableIndirectParser>>>::ATTRIBUTES
                            {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<RustcConstStableIndirectParser>>
                                                as crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<RustcConstStableIndirectParser>>
                                                as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcConversionSuggestionParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    ->
                                        RefCell<Single<WithoutArgs<RustcConversionSuggestionParser>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcConversionSuggestionParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcConversionSuggestionParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcConversionSuggestionParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<RustcConversionSuggestionParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<RustcConversionSuggestionParser>>>::ATTRIBUTES
                            {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<RustcConversionSuggestionParser>>
                                                as crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<RustcConversionSuggestionParser>>
                                                as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<RustcDeallocatorParser>> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<RustcDeallocatorParser>>
                                                as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcDelayedBugFromInsideQueryParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    ->
                                        RefCell<Single<WithoutArgs<RustcDelayedBugFromInsideQueryParser>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcDelayedBugFromInsideQueryParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcDelayedBugFromInsideQueryParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcDelayedBugFromInsideQueryParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<RustcDelayedBugFromInsideQueryParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<RustcDelayedBugFromInsideQueryParser>>>::ATTRIBUTES
                            {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<RustcDelayedBugFromInsideQueryParser>>
                                                as crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<RustcDelayedBugFromInsideQueryParser>>
                                                as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcDenyExplicitImplParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    ->
                                        RefCell<Single<WithoutArgs<RustcDenyExplicitImplParser>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcDenyExplicitImplParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcDenyExplicitImplParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcDenyExplicitImplParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<RustcDenyExplicitImplParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<RustcDenyExplicitImplParser>>>::ATTRIBUTES
                            {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<RustcDenyExplicitImplParser>> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<RustcDenyExplicitImplParser>>
                                                as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcDoNotConstCheckParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    ->
                                        RefCell<Single<WithoutArgs<RustcDoNotConstCheckParser>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcDoNotConstCheckParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcDoNotConstCheckParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcDoNotConstCheckParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<RustcDoNotConstCheckParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<RustcDoNotConstCheckParser>>>::ATTRIBUTES
                            {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<RustcDoNotConstCheckParser>> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<RustcDoNotConstCheckParser>>
                                                as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcDumpDefParentsParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<RustcDumpDefParentsParser>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcDumpDefParentsParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcDumpDefParentsParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcDumpDefParentsParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<RustcDumpDefParentsParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<RustcDumpDefParentsParser>>>::ATTRIBUTES
                            {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<RustcDumpDefParentsParser>> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<RustcDumpDefParentsParser>>
                                                as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcDumpHiddenTypeOfOpaquesParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    ->
                                        RefCell<Single<WithoutArgs<RustcDumpHiddenTypeOfOpaquesParser>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcDumpHiddenTypeOfOpaquesParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcDumpHiddenTypeOfOpaquesParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcDumpHiddenTypeOfOpaquesParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<RustcDumpHiddenTypeOfOpaquesParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<RustcDumpHiddenTypeOfOpaquesParser>>>::ATTRIBUTES
                            {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<RustcDumpHiddenTypeOfOpaquesParser>>
                                                as crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<RustcDumpHiddenTypeOfOpaquesParser>>
                                                as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcDumpInferredOutlivesParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    ->
                                        RefCell<Single<WithoutArgs<RustcDumpInferredOutlivesParser>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcDumpInferredOutlivesParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcDumpInferredOutlivesParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcDumpInferredOutlivesParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<RustcDumpInferredOutlivesParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<RustcDumpInferredOutlivesParser>>>::ATTRIBUTES
                            {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<RustcDumpInferredOutlivesParser>>
                                                as crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<RustcDumpInferredOutlivesParser>>
                                                as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcDumpItemBoundsParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<RustcDumpItemBoundsParser>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcDumpItemBoundsParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcDumpItemBoundsParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcDumpItemBoundsParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<RustcDumpItemBoundsParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<RustcDumpItemBoundsParser>>>::ATTRIBUTES
                            {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<RustcDumpItemBoundsParser>> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<RustcDumpItemBoundsParser>>
                                                as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcDumpObjectLifetimeDefaultsParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    ->
                                        RefCell<Single<WithoutArgs<RustcDumpObjectLifetimeDefaultsParser>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcDumpObjectLifetimeDefaultsParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcDumpObjectLifetimeDefaultsParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcDumpObjectLifetimeDefaultsParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<RustcDumpObjectLifetimeDefaultsParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<RustcDumpObjectLifetimeDefaultsParser>>>::ATTRIBUTES
                            {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<RustcDumpObjectLifetimeDefaultsParser>>
                                                as crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<RustcDumpObjectLifetimeDefaultsParser>>
                                                as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcDumpPredicatesParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<RustcDumpPredicatesParser>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcDumpPredicatesParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcDumpPredicatesParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcDumpPredicatesParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<RustcDumpPredicatesParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<RustcDumpPredicatesParser>>>::ATTRIBUTES
                            {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<RustcDumpPredicatesParser>> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<RustcDumpPredicatesParser>>
                                                as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcDumpUserArgsParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<RustcDumpUserArgsParser>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcDumpUserArgsParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcDumpUserArgsParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcDumpUserArgsParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<RustcDumpUserArgsParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<RustcDumpUserArgsParser>>>::ATTRIBUTES {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<RustcDumpUserArgsParser>> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<RustcDumpUserArgsParser>>
                                                as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcDumpVariancesOfOpaquesParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    ->
                                        RefCell<Single<WithoutArgs<RustcDumpVariancesOfOpaquesParser>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcDumpVariancesOfOpaquesParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcDumpVariancesOfOpaquesParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcDumpVariancesOfOpaquesParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<RustcDumpVariancesOfOpaquesParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<RustcDumpVariancesOfOpaquesParser>>>::ATTRIBUTES
                            {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<RustcDumpVariancesOfOpaquesParser>>
                                                as crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<RustcDumpVariancesOfOpaquesParser>>
                                                as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcDumpVariancesParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<RustcDumpVariancesParser>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcDumpVariancesParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcDumpVariancesParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcDumpVariancesParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<RustcDumpVariancesParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<RustcDumpVariancesParser>>>::ATTRIBUTES
                            {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<RustcDumpVariancesParser>> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<RustcDumpVariancesParser>>
                                                as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcDumpVtableParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<RustcDumpVtableParser>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcDumpVtableParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcDumpVtableParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcDumpVtableParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<RustcDumpVtableParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<RustcDumpVtableParser>>>::ATTRIBUTES {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<RustcDumpVtableParser>> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<RustcDumpVtableParser>>
                                                as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcDynIncompatibleTraitParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    ->
                                        RefCell<Single<WithoutArgs<RustcDynIncompatibleTraitParser>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcDynIncompatibleTraitParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcDynIncompatibleTraitParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcDynIncompatibleTraitParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<RustcDynIncompatibleTraitParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<RustcDynIncompatibleTraitParser>>>::ATTRIBUTES
                            {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<RustcDynIncompatibleTraitParser>>
                                                as crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<RustcDynIncompatibleTraitParser>>
                                                as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcEffectiveVisibilityParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    ->
                                        RefCell<Single<WithoutArgs<RustcEffectiveVisibilityParser>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcEffectiveVisibilityParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcEffectiveVisibilityParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcEffectiveVisibilityParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<RustcEffectiveVisibilityParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<RustcEffectiveVisibilityParser>>>::ATTRIBUTES
                            {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<RustcEffectiveVisibilityParser>>
                                                as crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<RustcEffectiveVisibilityParser>>
                                                as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcEiiForeignItemParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<RustcEiiForeignItemParser>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcEiiForeignItemParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcEiiForeignItemParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcEiiForeignItemParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<RustcEiiForeignItemParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<RustcEiiForeignItemParser>>>::ATTRIBUTES
                            {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<RustcEiiForeignItemParser>> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<RustcEiiForeignItemParser>>
                                                as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcEvaluateWhereClausesParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    ->
                                        RefCell<Single<WithoutArgs<RustcEvaluateWhereClausesParser>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcEvaluateWhereClausesParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcEvaluateWhereClausesParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcEvaluateWhereClausesParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<RustcEvaluateWhereClausesParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<RustcEvaluateWhereClausesParser>>>::ATTRIBUTES
                            {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<RustcEvaluateWhereClausesParser>>
                                                as crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<RustcEvaluateWhereClausesParser>>
                                                as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcExhaustiveParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<RustcExhaustiveParser>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcExhaustiveParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcExhaustiveParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcExhaustiveParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<RustcExhaustiveParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<RustcExhaustiveParser>>>::ATTRIBUTES {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<RustcExhaustiveParser>> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<RustcExhaustiveParser>>
                                                as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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
                            {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<RustcHasIncoherentInherentImplsParser>>
                                                as crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<RustcHasIncoherentInherentImplsParser>>
                                                as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcInheritOverflowChecksParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    ->
                                        RefCell<Single<WithoutArgs<RustcInheritOverflowChecksParser>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcInheritOverflowChecksParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcInheritOverflowChecksParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcInheritOverflowChecksParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<RustcInheritOverflowChecksParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<RustcInheritOverflowChecksParser>>>::ATTRIBUTES
                            {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<RustcInheritOverflowChecksParser>>
                                                as crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<RustcInheritOverflowChecksParser>>
                                                as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcInsignificantDtorParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    ->
                                        RefCell<Single<WithoutArgs<RustcInsignificantDtorParser>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcInsignificantDtorParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcInsignificantDtorParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcInsignificantDtorParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<RustcInsignificantDtorParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<RustcInsignificantDtorParser>>>::ATTRIBUTES
                            {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<RustcInsignificantDtorParser>>
                                                as crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<RustcInsignificantDtorParser>>
                                                as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcIntrinsicConstStableIndirectParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    ->
                                        RefCell<Single<WithoutArgs<RustcIntrinsicConstStableIndirectParser>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcIntrinsicConstStableIndirectParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcIntrinsicConstStableIndirectParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcIntrinsicConstStableIndirectParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<RustcIntrinsicConstStableIndirectParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<RustcIntrinsicConstStableIndirectParser>>>::ATTRIBUTES
                            {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<RustcIntrinsicConstStableIndirectParser>>
                                                as crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<RustcIntrinsicConstStableIndirectParser>>
                                                as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcIntrinsicParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<RustcIntrinsicParser>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcIntrinsicParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcIntrinsicParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcIntrinsicParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<RustcIntrinsicParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<RustcIntrinsicParser>>>::ATTRIBUTES {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<RustcIntrinsicParser>> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<RustcIntrinsicParser>>
                                                as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<RustcLintOptTyParser>> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<RustcLintOptTyParser>>
                                                as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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
                            {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<RustcLintQueryInstabilityParser>>
                                                as crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<RustcLintQueryInstabilityParser>>
                                                as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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
                            {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<RustcLintUntrackedQueryInformationParser>>
                                                as crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<RustcLintUntrackedQueryInformationParser>>
                                                as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<RustcMainParser>> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<RustcMainParser>> as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcNeverReturnsNullPtrParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    ->
                                        RefCell<Single<WithoutArgs<RustcNeverReturnsNullPtrParser>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcNeverReturnsNullPtrParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcNeverReturnsNullPtrParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcNeverReturnsNullPtrParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<RustcNeverReturnsNullPtrParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<RustcNeverReturnsNullPtrParser>>>::ATTRIBUTES
                            {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<RustcNeverReturnsNullPtrParser>>
                                                as crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<RustcNeverReturnsNullPtrParser>>
                                                as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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
                            {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<RustcNoImplicitAutorefsParser>>
                                                as crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<RustcNoImplicitAutorefsParser>>
                                                as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcNoImplicitBoundsParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    ->
                                        RefCell<Single<WithoutArgs<RustcNoImplicitBoundsParser>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcNoImplicitBoundsParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcNoImplicitBoundsParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcNoImplicitBoundsParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<RustcNoImplicitBoundsParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<RustcNoImplicitBoundsParser>>>::ATTRIBUTES
                            {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<RustcNoImplicitBoundsParser>> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<RustcNoImplicitBoundsParser>>
                                                as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcNoMirInlineParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<RustcNoMirInlineParser>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcNoMirInlineParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcNoMirInlineParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcNoMirInlineParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<RustcNoMirInlineParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<RustcNoMirInlineParser>>>::ATTRIBUTES {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<RustcNoMirInlineParser>> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<RustcNoMirInlineParser>>
                                                as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcNoWritableParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<RustcNoWritableParser>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcNoWritableParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcNoWritableParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcNoWritableParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<RustcNoWritableParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<RustcNoWritableParser>>>::ATTRIBUTES {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<RustcNoWritableParser>> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<RustcNoWritableParser>>
                                                as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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
                            {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<RustcNonConstTraitMethodParser>>
                                                as crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<RustcNonConstTraitMethodParser>>
                                                as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcNonnullOptimizationGuaranteedParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    ->
                                        RefCell<Single<WithoutArgs<RustcNonnullOptimizationGuaranteedParser>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcNonnullOptimizationGuaranteedParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcNonnullOptimizationGuaranteedParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcNonnullOptimizationGuaranteedParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<RustcNonnullOptimizationGuaranteedParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<RustcNonnullOptimizationGuaranteedParser>>>::ATTRIBUTES
                            {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<RustcNonnullOptimizationGuaranteedParser>>
                                                as crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<RustcNonnullOptimizationGuaranteedParser>>
                                                as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<RustcNounwindParser>> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<RustcNounwindParser>>
                                                as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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
                            {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<RustcOffloadKernelParser>> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<RustcOffloadKernelParser>>
                                                as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcParenSugarParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<RustcParenSugarParser>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcParenSugarParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcParenSugarParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcParenSugarParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<RustcParenSugarParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<RustcParenSugarParser>>>::ATTRIBUTES {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<RustcParenSugarParser>> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<RustcParenSugarParser>>
                                                as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcPassByValueParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<RustcPassByValueParser>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcPassByValueParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcPassByValueParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcPassByValueParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<RustcPassByValueParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<RustcPassByValueParser>>>::ATTRIBUTES {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<RustcPassByValueParser>> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<RustcPassByValueParser>>
                                                as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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
                            {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<RustcPassIndirectlyInNonRusticAbisParser>>
                                                as crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<RustcPassIndirectlyInNonRusticAbisParser>>
                                                as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcPreserveUbChecksParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    ->
                                        RefCell<Single<WithoutArgs<RustcPreserveUbChecksParser>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcPreserveUbChecksParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcPreserveUbChecksParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcPreserveUbChecksParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<RustcPreserveUbChecksParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<RustcPreserveUbChecksParser>>>::ATTRIBUTES
                            {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<RustcPreserveUbChecksParser>> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<RustcPreserveUbChecksParser>>
                                                as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcProcMacroDeclsParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<RustcProcMacroDeclsParser>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcProcMacroDeclsParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcProcMacroDeclsParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcProcMacroDeclsParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<RustcProcMacroDeclsParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<RustcProcMacroDeclsParser>>>::ATTRIBUTES
                            {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<RustcProcMacroDeclsParser>> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<RustcProcMacroDeclsParser>>
                                                as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcPubTransparentParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<RustcPubTransparentParser>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcPubTransparentParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcPubTransparentParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcPubTransparentParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<RustcPubTransparentParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<RustcPubTransparentParser>>>::ATTRIBUTES
                            {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<RustcPubTransparentParser>> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<RustcPubTransparentParser>>
                                                as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<RustcReallocatorParser>> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<RustcReallocatorParser>>
                                                as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcRegionsParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    -> RefCell<Single<WithoutArgs<RustcRegionsParser>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcRegionsParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcRegionsParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcRegionsParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<RustcRegionsParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<RustcRegionsParser>>>::ATTRIBUTES {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<RustcRegionsParser>> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<RustcRegionsParser>> as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcShouldNotBeCalledOnConstItemsParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    ->
                                        RefCell<Single<WithoutArgs<RustcShouldNotBeCalledOnConstItemsParser>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcShouldNotBeCalledOnConstItemsParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcShouldNotBeCalledOnConstItemsParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcShouldNotBeCalledOnConstItemsParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<RustcShouldNotBeCalledOnConstItemsParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<RustcShouldNotBeCalledOnConstItemsParser>>>::ATTRIBUTES
                            {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<RustcShouldNotBeCalledOnConstItemsParser>>
                                                as crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<RustcShouldNotBeCalledOnConstItemsParser>>
                                                as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcSpecializationTraitParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    ->
                                        RefCell<Single<WithoutArgs<RustcSpecializationTraitParser>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcSpecializationTraitParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcSpecializationTraitParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcSpecializationTraitParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<RustcSpecializationTraitParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<RustcSpecializationTraitParser>>>::ATTRIBUTES
                            {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<RustcSpecializationTraitParser>>
                                                as crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<RustcSpecializationTraitParser>>
                                                as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcStdInternalSymbolParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    ->
                                        RefCell<Single<WithoutArgs<RustcStdInternalSymbolParser>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcStdInternalSymbolParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcStdInternalSymbolParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcStdInternalSymbolParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<RustcStdInternalSymbolParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<RustcStdInternalSymbolParser>>>::ATTRIBUTES
                            {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<RustcStdInternalSymbolParser>>
                                                as crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<RustcStdInternalSymbolParser>>
                                                as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcStrictCoherenceParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    ->
                                        RefCell<Single<WithoutArgs<RustcStrictCoherenceParser>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcStrictCoherenceParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcStrictCoherenceParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcStrictCoherenceParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<RustcStrictCoherenceParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<RustcStrictCoherenceParser>>>::ATTRIBUTES
                            {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<RustcStrictCoherenceParser>> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<RustcStrictCoherenceParser>>
                                                as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcTrivialFieldReadsParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    ->
                                        RefCell<Single<WithoutArgs<RustcTrivialFieldReadsParser>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcTrivialFieldReadsParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcTrivialFieldReadsParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcTrivialFieldReadsParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<RustcTrivialFieldReadsParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<RustcTrivialFieldReadsParser>>>::ATTRIBUTES
                            {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<RustcTrivialFieldReadsParser>>
                                                as crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<RustcTrivialFieldReadsParser>>
                                                as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        const STATE_OBJECT:
                            ::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcUnsafeSpecializationMarkerParser>>>>
                            =
                            {
                                #[inline]
                                fn __rust_std_internal_init_fn()
                                    ->
                                        RefCell<Single<WithoutArgs<RustcUnsafeSpecializationMarkerParser>>> {
                                    RefCell::new(<Single<WithoutArgs<RustcUnsafeSpecializationMarkerParser>>>::default())
                                }
                                unsafe {
                                    ::std::thread::LocalKey::new(const {
                                                if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcUnsafeSpecializationMarkerParser>>>>()
                                                    {
                                                    |__rust_std_internal_init|
                                                        {
                                                            #[thread_local]
                                                            static __RUST_STD_INTERNAL_VAL:
                                                                ::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcUnsafeSpecializationMarkerParser>>>,
                                                                ()> =
                                                                ::std::thread::local_impl::LazyStorage::new();
                                                            __RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_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<RustcUnsafeSpecializationMarkerParser>>>,
                                                                !> =
                                                                ::std::thread::local_impl::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<RustcUnsafeSpecializationMarkerParser>>>::ATTRIBUTES
                            {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<RustcUnsafeSpecializationMarkerParser>>
                                                as crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<RustcUnsafeSpecializationMarkerParser>>
                                                as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<ThreadLocalParser>> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<ThreadLocalParser>> as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    {
                        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 {
                            match accepters.entry(*path) {
                                Entry::Vacant(e) => {
                                    e.insert(GroupTypeInnerAccept {
                                            template: *template,
                                            accept_fn: Box::new(|cx, args|
                                                    {
                                                        STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
                                                    }),
                                            safety: <Single<WithoutArgs<TrackCallerParser>> as
                                                crate::attributes::AttributeParser<Late>>::SAFETY,
                                            allowed_targets: <Single<WithoutArgs<TrackCallerParser>> as
                                                crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
                                            finalizer: Box::new(|cx|
                                                    { let state = STATE_OBJECT.take(); state.finalize(cx) }),
                                        });
                                }
                                Entry::Occupied(_) => {
                                    ::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
                                            path));
                                }
                            }
                        }
                    }
                    GroupTypeInner { accepters }
                });
}attribute_parsers!(
150    pub(crate) static ATTRIBUTE_PARSERS = [
151        // tidy-alphabetical-start
152        BodyStabilityParser,
153        ConfusablesParser,
154        ConstStabilityParser,
155        DocParser,
156        MacroUseParser,
157        NakedParser,
158        OnConstParser,
159        OnMoveParser,
160        OnUnimplementedParser,
161        OnUnknownParser,
162        RustcAlignParser,
163        RustcAlignStaticParser,
164        RustcCguTestAttributeParser,
165        StabilityParser,
166        UsedParser,
167        // tidy-alphabetical-end
168
169        // tidy-alphabetical-start
170        Combine<AllowInternalUnstableParser>,
171        Combine<CrateTypeParser>,
172        Combine<DebuggerViualizerParser>,
173        Combine<FeatureParser>,
174        Combine<ForceTargetFeatureParser>,
175        Combine<LinkParser>,
176        Combine<RegisterToolParser>,
177        Combine<ReprParser>,
178        Combine<RustcAllowConstFnUnstableParser>,
179        Combine<RustcCleanParser>,
180        Combine<RustcDumpLayoutParser>,
181        Combine<RustcMirParser>,
182        Combine<RustcThenThisWouldNeedParser>,
183        Combine<TargetFeatureParser>,
184        Combine<UnstableFeatureBoundParser>,
185        Combine<UnstableRemovedParser>,
186        // tidy-alphabetical-end
187
188        // tidy-alphabetical-start
189        Single<CfiEncodingParser>,
190        Single<CollapseDebugInfoParser>,
191        Single<CoverageParser>,
192        Single<CrateNameParser>,
193        Single<CustomMirParser>,
194        Single<DeprecatedParser>,
195        Single<DoNotRecommendParser>,
196        Single<ExportNameParser>,
197        Single<IgnoreParser>,
198        Single<InlineParser>,
199        Single<InstructionSetParser>,
200        Single<LangParser>,
201        Single<LinkNameParser>,
202        Single<LinkOrdinalParser>,
203        Single<LinkSectionParser>,
204        Single<LinkageParser>,
205        Single<MacroExportParser>,
206        Single<MoveSizeLimitParser>,
207        Single<MustNotSuspendParser>,
208        Single<MustUseParser>,
209        Single<OptimizeParser>,
210        Single<PatchableFunctionEntryParser>,
211        Single<PathAttributeParser>,
212        Single<PatternComplexityLimitParser>,
213        Single<ProcMacroDeriveParser>,
214        Single<RecursionLimitParser>,
215        Single<ReexportTestHarnessMainParser>,
216        Single<RustcAbiParser>,
217        Single<RustcAllocatorZeroedVariantParser>,
218        Single<RustcAutodiffParser>,
219        Single<RustcBuiltinMacroParser>,
220        Single<RustcDeprecatedSafe2024Parser>,
221        Single<RustcDiagnosticItemParser>,
222        Single<RustcDocPrimitiveParser>,
223        Single<RustcDummyParser>,
224        Single<RustcDumpDefPathParser>,
225        Single<RustcDumpSymbolNameParser>,
226        Single<RustcForceInlineParser>,
227        Single<RustcIfThisChangedParser>,
228        Single<RustcLayoutScalarValidRangeEndParser>,
229        Single<RustcLayoutScalarValidRangeStartParser>,
230        Single<RustcLegacyConstGenericsParser>,
231        Single<RustcLintOptDenyFieldAccessParser>,
232        Single<RustcMacroTransparencyParser>,
233        Single<RustcMustImplementOneOfParser>,
234        Single<RustcNeverTypeOptionsParser>,
235        Single<RustcObjcClassParser>,
236        Single<RustcObjcSelectorParser>,
237        Single<RustcReservationImplParser>,
238        Single<RustcScalableVectorParser>,
239        Single<RustcSimdMonomorphizeLaneLimitParser>,
240        Single<RustcSkipDuringMethodDispatchParser>,
241        Single<RustcTestMarkerParser>,
242        Single<SanitizeParser>,
243        Single<ShouldPanicParser>,
244        Single<TestRunnerParser>,
245        Single<TypeLengthLimitParser>,
246        Single<WindowsSubsystemParser>,
247        Single<WithoutArgs<AllowInternalUnsafeParser>>,
248        Single<WithoutArgs<AutomaticallyDerivedParser>>,
249        Single<WithoutArgs<ColdParser>>,
250        Single<WithoutArgs<CompilerBuiltinsParser>>,
251        Single<WithoutArgs<ConstContinueParser>>,
252        Single<WithoutArgs<CoroutineParser>>,
253        Single<WithoutArgs<DefaultLibAllocatorParser>>,
254        Single<WithoutArgs<ExportStableParser>>,
255        Single<WithoutArgs<FfiConstParser>>,
256        Single<WithoutArgs<FfiPureParser>>,
257        Single<WithoutArgs<FundamentalParser>>,
258        Single<WithoutArgs<LoopMatchParser>>,
259        Single<WithoutArgs<MacroEscapeParser>>,
260        Single<WithoutArgs<MarkerParser>>,
261        Single<WithoutArgs<MayDangleParser>>,
262        Single<WithoutArgs<NeedsAllocatorParser>>,
263        Single<WithoutArgs<NeedsPanicRuntimeParser>>,
264        Single<WithoutArgs<NoBuiltinsParser>>,
265        Single<WithoutArgs<NoCoreParser>>,
266        Single<WithoutArgs<NoImplicitPreludeParser>>,
267        Single<WithoutArgs<NoLinkParser>>,
268        Single<WithoutArgs<NoMainParser>>,
269        Single<WithoutArgs<NoMangleParser>>,
270        Single<WithoutArgs<NoStdParser>>,
271        Single<WithoutArgs<NonExhaustiveParser>>,
272        Single<WithoutArgs<PanicHandlerParser>>,
273        Single<WithoutArgs<PanicRuntimeParser>>,
274        Single<WithoutArgs<PinV2Parser>>,
275        Single<WithoutArgs<PreludeImportParser>>,
276        Single<WithoutArgs<ProcMacroAttributeParser>>,
277        Single<WithoutArgs<ProcMacroParser>>,
278        Single<WithoutArgs<ProfilerRuntimeParser>>,
279        Single<WithoutArgs<RustcAllocatorParser>>,
280        Single<WithoutArgs<RustcAllocatorZeroedParser>>,
281        Single<WithoutArgs<RustcAllowIncoherentImplParser>>,
282        Single<WithoutArgs<RustcAsPtrParser>>,
283        Single<WithoutArgs<RustcCaptureAnalysisParser>>,
284        Single<WithoutArgs<RustcCoherenceIsCoreParser>>,
285        Single<WithoutArgs<RustcCoinductiveParser>>,
286        Single<WithoutArgs<RustcConstStableIndirectParser>>,
287        Single<WithoutArgs<RustcConversionSuggestionParser>>,
288        Single<WithoutArgs<RustcDeallocatorParser>>,
289        Single<WithoutArgs<RustcDelayedBugFromInsideQueryParser>>,
290        Single<WithoutArgs<RustcDenyExplicitImplParser>>,
291        Single<WithoutArgs<RustcDoNotConstCheckParser>>,
292        Single<WithoutArgs<RustcDumpDefParentsParser>>,
293        Single<WithoutArgs<RustcDumpHiddenTypeOfOpaquesParser>>,
294        Single<WithoutArgs<RustcDumpInferredOutlivesParser>>,
295        Single<WithoutArgs<RustcDumpItemBoundsParser>>,
296        Single<WithoutArgs<RustcDumpObjectLifetimeDefaultsParser>>,
297        Single<WithoutArgs<RustcDumpPredicatesParser>>,
298        Single<WithoutArgs<RustcDumpUserArgsParser>>,
299        Single<WithoutArgs<RustcDumpVariancesOfOpaquesParser>>,
300        Single<WithoutArgs<RustcDumpVariancesParser>>,
301        Single<WithoutArgs<RustcDumpVtableParser>>,
302        Single<WithoutArgs<RustcDynIncompatibleTraitParser>>,
303        Single<WithoutArgs<RustcEffectiveVisibilityParser>>,
304        Single<WithoutArgs<RustcEiiForeignItemParser>>,
305        Single<WithoutArgs<RustcEvaluateWhereClausesParser>>,
306        Single<WithoutArgs<RustcExhaustiveParser>>,
307        Single<WithoutArgs<RustcHasIncoherentInherentImplsParser>>,
308        Single<WithoutArgs<RustcInheritOverflowChecksParser>>,
309        Single<WithoutArgs<RustcInsignificantDtorParser>>,
310        Single<WithoutArgs<RustcIntrinsicConstStableIndirectParser>>,
311        Single<WithoutArgs<RustcIntrinsicParser>>,
312        Single<WithoutArgs<RustcLintOptTyParser>>,
313        Single<WithoutArgs<RustcLintQueryInstabilityParser>>,
314        Single<WithoutArgs<RustcLintUntrackedQueryInformationParser>>,
315        Single<WithoutArgs<RustcMainParser>>,
316        Single<WithoutArgs<RustcNeverReturnsNullPtrParser>>,
317        Single<WithoutArgs<RustcNoImplicitAutorefsParser>>,
318        Single<WithoutArgs<RustcNoImplicitBoundsParser>>,
319        Single<WithoutArgs<RustcNoMirInlineParser>>,
320        Single<WithoutArgs<RustcNoWritableParser>>,
321        Single<WithoutArgs<RustcNonConstTraitMethodParser>>,
322        Single<WithoutArgs<RustcNonnullOptimizationGuaranteedParser>>,
323        Single<WithoutArgs<RustcNounwindParser>>,
324        Single<WithoutArgs<RustcOffloadKernelParser>>,
325        Single<WithoutArgs<RustcParenSugarParser>>,
326        Single<WithoutArgs<RustcPassByValueParser>>,
327        Single<WithoutArgs<RustcPassIndirectlyInNonRusticAbisParser>>,
328        Single<WithoutArgs<RustcPreserveUbChecksParser>>,
329        Single<WithoutArgs<RustcProcMacroDeclsParser>>,
330        Single<WithoutArgs<RustcPubTransparentParser>>,
331        Single<WithoutArgs<RustcReallocatorParser>>,
332        Single<WithoutArgs<RustcRegionsParser>>,
333        Single<WithoutArgs<RustcShouldNotBeCalledOnConstItemsParser>>,
334        Single<WithoutArgs<RustcSpecializationTraitParser>>,
335        Single<WithoutArgs<RustcStdInternalSymbolParser>>,
336        Single<WithoutArgs<RustcStrictCoherenceParser>>,
337        Single<WithoutArgs<RustcTrivialFieldReadsParser>>,
338        Single<WithoutArgs<RustcUnsafeSpecializationMarkerParser>>,
339        Single<WithoutArgs<ThreadLocalParser>>,
340        Single<WithoutArgs<TrackCallerParser>>,
341        // tidy-alphabetical-end
342    ];
343);
344
345mod private {
346    pub trait Sealed {}
347    impl Sealed for super::Early {}
348    impl Sealed for super::Late {}
349}
350
351// allow because it's a sealed trait
352#[allow(private_interfaces)]
353pub trait Stage: Sized + 'static + Sealed {
354    type Id: Copy;
355
356    fn parsers() -> &'static GroupType<Self>;
357
358    fn emit_err<'sess>(
359        &self,
360        sess: &'sess Session,
361        diag: impl for<'x> Diagnostic<'x>,
362    ) -> ErrorGuaranteed;
363
364    fn should_emit(&self) -> ShouldEmit;
365}
366
367// allow because it's a sealed trait
368#[allow(private_interfaces)]
369impl Stage for Early {
370    type Id = NodeId;
371
372    fn parsers() -> &'static GroupType<Self> {
373        &early::ATTRIBUTE_PARSERS
374    }
375    fn emit_err<'sess>(
376        &self,
377        sess: &'sess Session,
378        diag: impl for<'x> Diagnostic<'x>,
379    ) -> ErrorGuaranteed {
380        self.should_emit().emit_err(sess.dcx().create_err(diag))
381    }
382
383    fn should_emit(&self) -> ShouldEmit {
384        self.emit_errors
385    }
386}
387
388// allow because it's a sealed trait
389#[allow(private_interfaces)]
390impl Stage for Late {
391    type Id = HirId;
392
393    fn parsers() -> &'static GroupType<Self> {
394        &late::ATTRIBUTE_PARSERS
395    }
396    fn emit_err<'sess>(
397        &self,
398        tcx: &'sess Session,
399        diag: impl for<'x> Diagnostic<'x>,
400    ) -> ErrorGuaranteed {
401        tcx.dcx().emit_err(diag)
402    }
403
404    fn should_emit(&self) -> ShouldEmit {
405        ShouldEmit::ErrorsAndLints { recovery: Recovery::Allowed }
406    }
407}
408
409/// Used when parsing attributes for miscellaneous things *before* ast lowering
410pub struct Early {
411    /// Whether to emit errors or delay them as a bug.
412    /// For most attributes, the attribute will be parsed again in the `Late` stage and in this case the errors should be delayed.
413    /// But for some, such as `cfg`, the attribute will be removed before the `Late` stage so errors must be emitted.
414    pub emit_errors: ShouldEmit,
415}
416/// used when parsing attributes during ast lowering
417pub struct Late;
418
419/// Context given to every attribute parser when accepting
420///
421/// Gives [`AttributeParser`]s enough information to create errors, for example.
422pub struct AcceptContext<'f, 'sess, S: Stage> {
423    pub(crate) shared: SharedContext<'f, 'sess, S>,
424
425    /// The outer span of the attribute currently being parsed
426    ///
427    /// ```none
428    /// #[attribute(...)]
429    /// ^^^^^^^^^^^^^^^^^ outer span
430    /// ```
431    /// For attributes in `cfg_attr`, the outer span and inner spans are equal.
432    pub(crate) attr_span: Span,
433    /// The inner span of the attribute currently being parsed.
434    ///
435    /// ```none
436    /// #[attribute(...)]
437    ///   ^^^^^^^^^^^^^^  inner span
438    /// ```
439    pub(crate) inner_span: Span,
440
441    /// Whether it is an inner or outer attribute.
442    pub(crate) attr_style: AttrStyle,
443
444    /// A description of the thing we are parsing using this attribute parser.
445    /// We are not only using these parsers for attributes, but also for macros such as the `cfg!()` macro.
446    pub(crate) parsed_description: ParsedDescription,
447
448    /// The expected structure of the attribute.
449    ///
450    /// Used in reporting errors to give a hint to users what the attribute *should* look like.
451    pub(crate) template: &'f AttributeTemplate,
452
453    /// The name of the attribute we're currently accepting.
454    pub(crate) attr_path: AttrPath,
455}
456
457impl<'f, 'sess: 'f, S: Stage> SharedContext<'f, 'sess, S> {
458    pub(crate) fn emit_err(&self, diag: impl for<'x> Diagnostic<'x>) -> ErrorGuaranteed {
459        self.stage.emit_err(&self.sess, diag)
460    }
461
462    /// Emit a lint. This method is somewhat special, since lints emitted during attribute parsing
463    /// must be delayed until after HIR is built. This method will take care of the details of
464    /// that.
465    pub(crate) fn emit_lint(
466        &mut self,
467        lint: &'static Lint,
468        kind: AttributeLintKind,
469        span: impl Into<MultiSpan>,
470    ) {
471        self.emit_lint_inner(lint, EmitAttribute::Static(kind), span);
472    }
473
474    /// Emit a lint. This method is somewhat special, since lints emitted during attribute parsing
475    /// must be delayed until after HIR is built. This method will take care of the details of
476    /// that.
477    pub(crate) fn emit_dyn_lint<
478        F: for<'a> Fn(DiagCtxtHandle<'a>, Level) -> Diag<'a, ()> + DynSend + DynSync + 'static,
479    >(
480        &mut self,
481        lint: &'static Lint,
482        callback: F,
483        span: impl Into<MultiSpan>,
484    ) {
485        self.emit_lint_inner(lint, EmitAttribute::Dynamic(Box::new(callback)), span);
486    }
487
488    fn emit_lint_inner(
489        &mut self,
490        lint: &'static Lint,
491        kind: EmitAttribute,
492        span: impl Into<MultiSpan>,
493    ) {
494        if !#[allow(non_exhaustive_omitted_patterns)] match self.stage.should_emit() {
    ShouldEmit::ErrorsAndLints { .. } | ShouldEmit::EarlyFatal {
        also_emit_lints: true } => true,
    _ => false,
}matches!(
495            self.stage.should_emit(),
496            ShouldEmit::ErrorsAndLints { .. } | ShouldEmit::EarlyFatal { also_emit_lints: true }
497        ) {
498            return;
499        }
500        (self.emit_lint)(LintId::of(lint), span.into(), kind);
501    }
502
503    pub(crate) fn warn_unused_duplicate(&mut self, used_span: Span, unused_span: Span) {
504        self.emit_dyn_lint(
505            rustc_session::lint::builtin::UNUSED_ATTRIBUTES,
506            move |dcx, level| {
507                rustc_errors::lints::UnusedDuplicate {
508                    this: unused_span,
509                    other: used_span,
510                    warning: false,
511                }
512                .into_diag(dcx, level)
513            },
514            unused_span,
515        )
516    }
517
518    pub(crate) fn warn_unused_duplicate_future_error(
519        &mut self,
520        used_span: Span,
521        unused_span: Span,
522    ) {
523        self.emit_dyn_lint(
524            rustc_session::lint::builtin::UNUSED_ATTRIBUTES,
525            move |dcx, level| {
526                rustc_errors::lints::UnusedDuplicate {
527                    this: unused_span,
528                    other: used_span,
529                    warning: true,
530                }
531                .into_diag(dcx, level)
532            },
533            unused_span,
534        )
535    }
536}
537
538impl<'f, 'sess: 'f, S: Stage> AcceptContext<'f, 'sess, S> {
539    pub(crate) fn adcx(&mut self) -> AttributeDiagnosticContext<'_, 'f, 'sess, S> {
540        AttributeDiagnosticContext { ctx: self, custom_suggestions: Vec::new() }
541    }
542
543    /// Asserts that this MetaItem is a list that contains a single element. Emits an error and
544    /// returns `None` if it is not the case.
545    ///
546    /// Some examples:
547    ///
548    /// - In `#[allow(warnings)]`, `warnings` is returned
549    /// - In `#[cfg_attr(docsrs, doc = "foo")]`, `None` is returned, "expected a single argument
550    ///   here" is emitted.
551    /// - In `#[cfg()]`, `None` is returned, "expected an argument here" is emitted.
552    ///
553    /// The provided span is used as a fallback for diagnostic generation in case `arg` does not
554    /// contain any. It should be the span of the node that contains `arg`.
555    pub(crate) fn single_element_list<'arg>(
556        &mut self,
557        arg: &'arg ArgParser,
558        span: Span,
559    ) -> Option<&'arg MetaItemOrLitParser> {
560        let ArgParser::List(l) = arg else {
561            self.adcx().expected_list(span, arg);
562            return None;
563        };
564
565        let Some(single) = l.single() else {
566            self.adcx().expected_single_argument(l.span, l.len());
567            return None;
568        };
569
570        Some(single)
571    }
572}
573
574impl<'f, 'sess, S: Stage> Deref for AcceptContext<'f, 'sess, S> {
575    type Target = SharedContext<'f, 'sess, S>;
576
577    fn deref(&self) -> &Self::Target {
578        &self.shared
579    }
580}
581
582impl<'f, 'sess, S: Stage> DerefMut for AcceptContext<'f, 'sess, S> {
583    fn deref_mut(&mut self) -> &mut Self::Target {
584        &mut self.shared
585    }
586}
587
588/// Context given to every attribute parser during finalization.
589///
590/// Gives [`AttributeParser`](crate::attributes::AttributeParser)s enough information to create
591/// errors, for example.
592pub struct SharedContext<'p, 'sess, S: Stage> {
593    /// The parse context, gives access to the session and the
594    /// diagnostics context.
595    pub(crate) cx: &'p mut AttributeParser<'sess, S>,
596    /// The span of the syntactical component this attribute was applied to
597    pub(crate) target_span: Span,
598    pub(crate) target: rustc_hir::Target,
599
600    /// The second argument of the closure is a [`NodeId`] if `S` is `Early` and a [`HirId`] if `S`
601    /// is `Late` and is the ID of the syntactical component this attribute was applied to.
602    pub(crate) emit_lint: &'p mut dyn FnMut(LintId, MultiSpan, EmitAttribute),
603}
604
605/// Context given to every attribute parser during finalization.
606///
607/// Gives [`AttributeParser`](crate::attributes::AttributeParser)s enough information to create
608/// errors, for example.
609pub(crate) struct FinalizeContext<'p, 'sess, S: Stage> {
610    pub(crate) shared: SharedContext<'p, 'sess, S>,
611
612    /// A list of all attribute on this syntax node.
613    ///
614    /// Useful for compatibility checks with other attributes in [`finalize`](crate::attributes::AttributeParser::finalize)
615    ///
616    /// Usually, you should use normal attribute parsing logic instead,
617    /// especially when making a *denylist* of other attributes.
618    pub(crate) all_attrs: &'p [RefPathParser<'p>],
619}
620
621impl<'p, 'sess: 'p, S: Stage> Deref for FinalizeContext<'p, 'sess, S> {
622    type Target = SharedContext<'p, 'sess, S>;
623
624    fn deref(&self) -> &Self::Target {
625        &self.shared
626    }
627}
628
629impl<'p, 'sess: 'p, S: Stage> DerefMut for FinalizeContext<'p, 'sess, S> {
630    fn deref_mut(&mut self) -> &mut Self::Target {
631        &mut self.shared
632    }
633}
634
635impl<'p, 'sess: 'p, S: Stage> Deref for SharedContext<'p, 'sess, S> {
636    type Target = AttributeParser<'sess, S>;
637
638    fn deref(&self) -> &Self::Target {
639        self.cx
640    }
641}
642
643impl<'p, 'sess: 'p, S: Stage> DerefMut for SharedContext<'p, 'sess, S> {
644    fn deref_mut(&mut self) -> &mut Self::Target {
645        self.cx
646    }
647}
648
649#[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)]
650pub enum OmitDoc {
651    Lower,
652    Skip,
653}
654
655#[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>;
        let _: ::core::clone::AssertParamIsClone<Recovery>;
        *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 { recovery: __self_0 } =>
                ::core::fmt::Formatter::debug_struct_field1_finish(f,
                    "ErrorsAndLints", "recovery", &__self_0),
            ShouldEmit::Nothing =>
                ::core::fmt::Formatter::write_str(f, "Nothing"),
        }
    }
}Debug)]
656pub enum ShouldEmit {
657    /// The operations will emit errors, and lints, and errors are fatal.
658    ///
659    /// Only relevant when early parsing, in late parsing equivalent to `ErrorsAndLints`.
660    /// Late parsing is never fatal, and instead tries to emit as many diagnostics as possible.
661    EarlyFatal { also_emit_lints: bool },
662    /// The operation will emit errors and lints.
663    /// This is usually what you need.
664    ErrorsAndLints {
665        /// Whether [`ArgParser`] will attempt to recover from errors.
666        ///
667        /// Whether it is allowed to recover from bad input (like an invalid literal). Setting
668        /// this to `Forbidden` will instead return early, and not raise errors except at the top
669        /// level (in [`ArgParser::from_attr_args`]).
670        recovery: Recovery,
671    },
672    /// The operation will *not* emit errors and lints.
673    ///
674    /// The parser can still call `delay_bug`, so you *must* ensure that this operation will also be
675    /// called with `ShouldEmit::ErrorsAndLints`.
676    Nothing,
677}
678
679impl ShouldEmit {
680    pub(crate) fn emit_err(&self, diag: Diag<'_>) -> ErrorGuaranteed {
681        match self {
682            ShouldEmit::EarlyFatal { .. } if diag.level() == Level::DelayedBug => diag.emit(),
683            ShouldEmit::EarlyFatal { .. } => diag.upgrade_to_fatal().emit(),
684            ShouldEmit::ErrorsAndLints { .. } => diag.emit(),
685            ShouldEmit::Nothing => diag.delay_as_bug(),
686        }
687    }
688}
689
690pub(crate) struct AttributeDiagnosticContext<'a, 'f, 'sess, S: Stage> {
691    ctx: &'a mut AcceptContext<'f, 'sess, S>,
692    custom_suggestions: Vec<Suggestion>,
693}
694
695impl<'a, 'f, 'sess: 'f, S> AttributeDiagnosticContext<'a, 'f, 'sess, S>
696where
697    S: Stage,
698{
699    fn emit_parse_error(
700        &mut self,
701        span: Span,
702        reason: AttributeParseErrorReason<'_>,
703    ) -> ErrorGuaranteed {
704        let suggestions = if !self.custom_suggestions.is_empty() {
705            AttributeParseErrorSuggestions::CreatedByParser(mem::take(&mut self.custom_suggestions))
706        } else {
707            AttributeParseErrorSuggestions::CreatedByTemplate(self.template_suggestions())
708        };
709
710        self.emit_err(AttributeParseError {
711            span,
712            attr_span: self.attr_span,
713            template: self.template.clone(),
714            path: self.attr_path.clone(),
715            description: self.parsed_description,
716            reason,
717            suggestions,
718        })
719    }
720
721    /// Adds a custom suggestion to the diagnostic. This also prevents the default (template-based)
722    /// suggestion to be emitted.
723    pub(crate) fn push_suggestion(&mut self, msg: String, span: Span, code: String) -> &mut Self {
724        self.custom_suggestions.push(Suggestion { msg, sp: span, code });
725        self
726    }
727
728    pub(crate) fn template_suggestions(&self) -> Vec<String> {
729        let style = match self.parsed_description {
730            // If the outer and inner spans are equal, we are parsing an embedded attribute
731            ParsedDescription::Attribute if self.attr_span == self.inner_span => {
732                AttrSuggestionStyle::EmbeddedAttribute
733            }
734            ParsedDescription::Attribute => AttrSuggestionStyle::Attribute(self.attr_style),
735            ParsedDescription::Macro => AttrSuggestionStyle::Macro,
736        };
737
738        self.template.suggestions(style, &self.attr_path)
739    }
740}
741
742/// Helpers that can be used to generate errors during attribute parsing.
743impl<'a, 'f, 'sess: 'f, S> AttributeDiagnosticContext<'a, 'f, 'sess, S>
744where
745    S: Stage,
746{
747    pub(crate) fn expected_integer_literal_in_range(
748        &mut self,
749        span: Span,
750        lower_bound: isize,
751        upper_bound: isize,
752    ) -> ErrorGuaranteed {
753        self.emit_parse_error(
754            span,
755            AttributeParseErrorReason::ExpectedIntegerLiteralInRange { lower_bound, upper_bound },
756        )
757    }
758
759    /// The provided span is used as a fallback in case `args` does not contain any. It should be
760    /// the span of the node that contains `args`.
761    pub(crate) fn expected_list(&mut self, span: Span, args: &ArgParser) -> ErrorGuaranteed {
762        let span = match args {
763            ArgParser::NoArgs => span,
764            ArgParser::List(list) => list.span,
765            ArgParser::NameValue(nv) => nv.args_span(),
766        };
767        self.emit_parse_error(span, AttributeParseErrorReason::ExpectedList)
768    }
769
770    pub(crate) fn expected_list_with_num_args_or_more(
771        &mut self,
772        args: usize,
773        span: Span,
774    ) -> ErrorGuaranteed {
775        self.emit_parse_error(
776            span,
777            AttributeParseErrorReason::ExpectedListWithNumArgsOrMore { args },
778        )
779    }
780
781    pub(crate) fn expected_list_or_no_args(&mut self, span: Span) -> ErrorGuaranteed {
782        self.emit_parse_error(span, AttributeParseErrorReason::ExpectedListOrNoArgs)
783    }
784
785    pub(crate) fn expected_nv_or_no_args(&mut self, span: Span) -> ErrorGuaranteed {
786        self.emit_parse_error(span, AttributeParseErrorReason::ExpectedNameValueOrNoArgs)
787    }
788
789    pub(crate) fn expected_non_empty_string_literal(&mut self, span: Span) -> ErrorGuaranteed {
790        self.emit_parse_error(span, AttributeParseErrorReason::ExpectedNonEmptyStringLiteral)
791    }
792
793    pub(crate) fn expected_no_args(&mut self, span: Span) -> ErrorGuaranteed {
794        self.emit_parse_error(span, AttributeParseErrorReason::ExpectedNoArgs)
795    }
796
797    /// Emit an error that a `name` was expected here
798    pub(crate) fn expected_identifier(&mut self, span: Span) -> ErrorGuaranteed {
799        self.emit_parse_error(span, AttributeParseErrorReason::ExpectedIdentifier)
800    }
801
802    /// Emit an error that a `name = value` pair was expected at this span. The symbol can be given for
803    /// a nicer error message talking about the specific name that was found lacking a value.
804    pub(crate) fn expected_name_value(
805        &mut self,
806        span: Span,
807        name: Option<Symbol>,
808    ) -> ErrorGuaranteed {
809        self.emit_parse_error(span, AttributeParseErrorReason::ExpectedNameValue(name))
810    }
811
812    /// Emit an error that a `name = value` argument is missing in a list of name-value pairs.
813    pub(crate) fn missing_name_value(&mut self, span: Span, name: Symbol) -> ErrorGuaranteed {
814        self.emit_parse_error(span, AttributeParseErrorReason::MissingNameValue(name))
815    }
816
817    /// Emit an error that a `name = value` pair was found where that name was already seen.
818    pub(crate) fn duplicate_key(&mut self, span: Span, key: Symbol) -> ErrorGuaranteed {
819        self.emit_parse_error(span, AttributeParseErrorReason::DuplicateKey(key))
820    }
821
822    /// An error that should be emitted when a [`MetaItemOrLitParser`]
823    /// was expected *not* to be a literal, but instead a meta item.
824    pub(crate) fn expected_not_literal(&mut self, span: Span) -> ErrorGuaranteed {
825        self.emit_parse_error(span, AttributeParseErrorReason::ExpectedNotLiteral)
826    }
827
828    /// Signals that we expected exactly one argument and that we got either zero or two or more.
829    /// The `provided_arguments` argument allows distinguishing between "expected an argument here"
830    /// (when zero arguments are provided) and "expect a single argument here" (when two or more
831    /// arguments are provided).
832    pub(crate) fn expected_single_argument(
833        &mut self,
834        span: Span,
835        provided_arguments: usize,
836    ) -> ErrorGuaranteed {
837        let reason = if provided_arguments == 0 {
838            AttributeParseErrorReason::ExpectedArgument
839        } else {
840            AttributeParseErrorReason::ExpectedSingleArgument
841        };
842
843        self.emit_parse_error(span, reason)
844    }
845
846    pub(crate) fn expected_at_least_one_argument(&mut self, span: Span) -> ErrorGuaranteed {
847        self.emit_parse_error(span, AttributeParseErrorReason::ExpectedAtLeastOneArgument)
848    }
849
850    /// Produces an error along the lines of `expected one of [foo, meow]`
851    pub(crate) fn expected_specific_argument(
852        &mut self,
853        span: Span,
854        possibilities: &[Symbol],
855    ) -> ErrorGuaranteed {
856        self.emit_parse_error(
857            span,
858            AttributeParseErrorReason::ExpectedSpecificArgument {
859                possibilities,
860                strings: false,
861                list: false,
862            },
863        )
864    }
865
866    /// Produces an error along the lines of `expected one of [foo, meow] as an argument`.
867    /// i.e. slightly different wording to [`expected_specific_argument`](Self::expected_specific_argument).
868    pub(crate) fn expected_specific_argument_and_list(
869        &mut self,
870        span: Span,
871        possibilities: &[Symbol],
872    ) -> ErrorGuaranteed {
873        self.emit_parse_error(
874            span,
875            AttributeParseErrorReason::ExpectedSpecificArgument {
876                possibilities,
877                strings: false,
878                list: true,
879            },
880        )
881    }
882
883    /// produces an error along the lines of `expected one of ["foo", "meow"]`
884    pub(crate) fn expected_specific_argument_strings(
885        &mut self,
886        span: Span,
887        possibilities: &[Symbol],
888    ) -> ErrorGuaranteed {
889        self.emit_parse_error(
890            span,
891            AttributeParseErrorReason::ExpectedSpecificArgument {
892                possibilities,
893                strings: true,
894                list: false,
895            },
896        )
897    }
898
899    pub(crate) fn warn_empty_attribute(&mut self, span: Span) {
900        let attr_path = self.attr_path.to_string();
901        let valid_without_list = self.template.word;
902        self.emit_dyn_lint(
903            rustc_session::lint::builtin::UNUSED_ATTRIBUTES,
904            move |dcx, level| {
905                crate::errors::EmptyAttributeList {
906                    attr_span: span,
907                    attr_path: &attr_path,
908                    valid_without_list,
909                }
910                .into_diag(dcx, level)
911            },
912            span,
913        );
914    }
915
916    pub(crate) fn warn_ill_formed_attribute_input(&mut self, lint: &'static Lint) {
917        self.warn_ill_formed_attribute_input_with_help(lint, None)
918    }
919    pub(crate) fn warn_ill_formed_attribute_input_with_help(
920        &mut self,
921        lint: &'static Lint,
922        help: Option<String>,
923    ) {
924        let suggestions = self.suggestions();
925        let span = self.attr_span;
926        self.emit_dyn_lint(
927            lint,
928            move |dcx, level| {
929                crate::errors::IllFormedAttributeInput::new(&suggestions, None, help.as_deref())
930                    .into_diag(dcx, level)
931            },
932            span,
933        );
934    }
935
936    pub(crate) fn suggestions(&self) -> Vec<String> {
937        let style = match self.parsed_description {
938            // If the outer and inner spans are equal, we are parsing an embedded attribute
939            ParsedDescription::Attribute if self.attr_span == self.inner_span => {
940                AttrSuggestionStyle::EmbeddedAttribute
941            }
942            ParsedDescription::Attribute => AttrSuggestionStyle::Attribute(self.attr_style),
943            ParsedDescription::Macro => AttrSuggestionStyle::Macro,
944        };
945
946        self.template.suggestions(style, &self.attr_path)
947    }
948    /// Error that a string literal was expected.
949    /// You can optionally give the literal you did find (which you found not to be a string literal)
950    /// which can make better errors. For example, if the literal was a byte string it will suggest
951    /// removing the `b` prefix.
952    pub(crate) fn expected_string_literal(
953        &mut self,
954        span: Span,
955        actual_literal: Option<&MetaItemLit>,
956    ) -> ErrorGuaranteed {
957        self.emit_parse_error(
958            span,
959            AttributeParseErrorReason::ExpectedStringLiteral {
960                byte_string: actual_literal.and_then(|i| {
961                    i.kind.is_bytestr().then(|| self.sess().source_map().start_point(i.span))
962                }),
963            },
964        )
965    }
966
967    /// Error that a filename string literal was expected.
968    pub(crate) fn expected_filename_literal(&mut self, span: Span) {
969        self.emit_parse_error(span, AttributeParseErrorReason::ExpectedFilenameLiteral);
970    }
971
972    pub(crate) fn expected_integer_literal(&mut self, span: Span) -> ErrorGuaranteed {
973        self.emit_parse_error(span, AttributeParseErrorReason::ExpectedIntegerLiteral)
974    }
975}
976
977impl<'a, 'f, 'sess: 'f, S> Deref for AttributeDiagnosticContext<'a, 'f, 'sess, S>
978where
979    S: Stage,
980{
981    type Target = AcceptContext<'f, 'sess, S>;
982
983    fn deref(&self) -> &Self::Target {
984        self.ctx
985    }
986}
987
988impl<'a, 'f, 'sess: 'f, S> DerefMut for AttributeDiagnosticContext<'a, 'f, 'sess, S>
989where
990    S: Stage,
991{
992    fn deref_mut(&mut self) -> &mut Self::Target {
993        self.ctx
994    }
995}
996
997/// Represents a custom suggestion that an attribute parser can emit.
998pub(crate) struct Suggestion {
999    pub(crate) msg: String,
1000    pub(crate) sp: Span,
1001    pub(crate) code: String,
1002}