rustc_attr_parsing/context.rs
1use std::cell::RefCell;
2use std::collections::BTreeMap;
3use std::collections::btree_map::Entry;
4use std::ops::{Deref, DerefMut};
5use std::sync::LazyLock;
6
7use private::Sealed;
8use rustc_ast::{AttrStyle, MetaItemLit, NodeId};
9use rustc_errors::{Diag, Diagnostic, Level};
10use rustc_feature::{AttrSuggestionStyle, AttributeTemplate};
11use rustc_hir::attrs::AttributeKind;
12use rustc_hir::lints::AttributeLintKind;
13use rustc_hir::{AttrPath, HirId};
14use rustc_parse::parser::Recovery;
15use rustc_session::Session;
16use rustc_session::lint::{Lint, LintId};
17use rustc_span::{ErrorGuaranteed, Span, Symbol};
18
19use crate::AttributeParser;
20// Glob imports to avoid big, bitrotty import lists
21use crate::attributes::allow_unstable::*;
22use crate::attributes::autodiff::*;
23use crate::attributes::body::*;
24use crate::attributes::cfi_encoding::*;
25use crate::attributes::codegen_attrs::*;
26use crate::attributes::confusables::*;
27use crate::attributes::crate_level::*;
28use crate::attributes::debugger::*;
29use crate::attributes::deprecation::*;
30use crate::attributes::diagnostic::do_not_recommend::*;
31use crate::attributes::diagnostic::on_const::*;
32use crate::attributes::diagnostic::on_unimplemented::*;
33use crate::attributes::doc::*;
34use crate::attributes::dummy::*;
35use crate::attributes::inline::*;
36use crate::attributes::instruction_set::*;
37use crate::attributes::link_attrs::*;
38use crate::attributes::lint_helpers::*;
39use crate::attributes::loop_match::*;
40use crate::attributes::macro_attrs::*;
41use crate::attributes::must_not_suspend::*;
42use crate::attributes::must_use::*;
43use crate::attributes::no_implicit_prelude::*;
44use crate::attributes::no_link::*;
45use crate::attributes::non_exhaustive::*;
46use crate::attributes::path::PathParser as PathAttributeParser;
47use crate::attributes::pin_v2::*;
48use crate::attributes::proc_macro_attrs::*;
49use crate::attributes::prototype::*;
50use crate::attributes::repr::*;
51use crate::attributes::rustc_allocator::*;
52use crate::attributes::rustc_dump::*;
53use crate::attributes::rustc_internal::*;
54use crate::attributes::semantics::*;
55use crate::attributes::stability::*;
56use crate::attributes::test_attrs::*;
57use crate::attributes::traits::*;
58use crate::attributes::transparency::*;
59use crate::attributes::{AttributeParser as _, Combine, Single, WithoutArgs};
60use crate::parser::{ArgParser, RefPathParser};
61use crate::session_diagnostics::{
62 AttributeParseError, AttributeParseErrorReason, ParsedDescription,
63};
64use crate::target_checking::AllowedTargets;
65type GroupType<S> = LazyLock<GroupTypeInner<S>>;
66
67pub(super) struct GroupTypeInner<S: Stage> {
68 pub(super) accepters: BTreeMap<&'static [Symbol], GroupTypeInnerAccept<S>>,
69}
70
71pub(super) struct GroupTypeInnerAccept<S: Stage> {
72 pub(super) template: AttributeTemplate,
73 pub(super) accept_fn: AcceptFn<S>,
74 pub(super) allowed_targets: AllowedTargets,
75 pub(super) finalizer: FinalizeFn<S>,
76}
77
78pub(crate) type AcceptFn<S> =
79 Box<dyn for<'sess, 'a> Fn(&mut AcceptContext<'_, 'sess, S>, &ArgParser) + Send + Sync>;
80pub(crate) type FinalizeFn<S> =
81 Box<dyn Send + Sync + Fn(&mut FinalizeContext<'_, '_, S>) -> Option<AttributeKind>>;
82
83macro_rules! attribute_parsers {
84 (
85 pub(crate) static $name: ident = [$($names: ty),* $(,)?];
86 ) => {
87 mod early {
88 use super::*;
89 type Combine<T> = super::Combine<T, Early>;
90 type Single<T> = super::Single<T, Early>;
91 type WithoutArgs<T> = super::WithoutArgs<T, Early>;
92
93 attribute_parsers!(@[Early] pub(crate) static $name = [$($names),*];);
94 }
95 mod late {
96 use super::*;
97 type Combine<T> = super::Combine<T, Late>;
98 type Single<T> = super::Single<T, Late>;
99 type WithoutArgs<T> = super::WithoutArgs<T, Late>;
100
101 attribute_parsers!(@[Late] pub(crate) static $name = [$($names),*];);
102 }
103 };
104 (
105 @[$stage: ty] pub(crate) static $name: ident = [$($names: ty),* $(,)?];
106 ) => {
107 pub(crate) static $name: GroupType<$stage> = LazyLock::new(|| {
108 let mut accepters = BTreeMap::<_, GroupTypeInnerAccept<$stage>>::new();
109 $(
110 {
111 thread_local! {
112 static STATE_OBJECT: RefCell<$names> = RefCell::new(<$names>::default());
113 };
114
115 for (path, template, accept_fn) in <$names>::ATTRIBUTES {
116 match accepters.entry(*path) {
117 Entry::Vacant(e) => {
118 e.insert(GroupTypeInnerAccept {
119 template: *template,
120 accept_fn: Box::new(|cx, args| {
121 STATE_OBJECT.with_borrow_mut(|s| {
122 accept_fn(s, cx, args)
123 })
124 }),
125 allowed_targets: <$names as crate::attributes::AttributeParser<$stage>>::ALLOWED_TARGETS,
126 finalizer: Box::new(|cx| {
127 let state = STATE_OBJECT.take();
128 state.finalize(cx)
129 })
130 });
131 }
132 Entry::Occupied(_) => panic!("Attribute {path:?} has multiple accepters"),
133 }
134 }
135 }
136 )*
137
138 GroupTypeInner { accepters }
139 });
140 };
141}
142mod 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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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<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) })
}),
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<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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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<RustcLayoutParser>>>
=
{
#[inline]
fn __rust_std_internal_init_fn()
-> RefCell<Combine<RustcLayoutParser>> {
RefCell::new(<Combine<RustcLayoutParser>>::default())
}
unsafe {
::std::thread::LocalKey::new(const {
if ::std::mem::needs_drop::<RefCell<Combine<RustcLayoutParser>>>()
{
|__rust_std_internal_init|
{
#[thread_local]
static __RUST_STD_INTERNAL_VAL:
::std::thread::local_impl::LazyStorage<RefCell<Combine<RustcLayoutParser>>,
()> =
::std::thread::local_impl::LazyStorage::new();
__RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
__rust_std_internal_init_fn)
}
} else {
|__rust_std_internal_init|
{
#[thread_local]
static __RUST_STD_INTERNAL_VAL:
::std::thread::local_impl::LazyStorage<RefCell<Combine<RustcLayoutParser>>,
!> =
::std::thread::local_impl::LazyStorage::new();
__RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
__rust_std_internal_init_fn)
}
}
})
}
};
for (path, template, accept_fn) in
<Combine<RustcLayoutParser>>::ATTRIBUTES {
match accepters.entry(*path) {
Entry::Vacant(e) => {
e.insert(GroupTypeInnerAccept {
template: *template,
accept_fn: Box::new(|cx, args|
{
STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
}),
allowed_targets: <Combine<RustcLayoutParser> as
crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
finalizer: Box::new(|cx|
{ let state = STATE_OBJECT.take(); state.finalize(cx) }),
});
}
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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<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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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<RustcDefPathParser>>>
=
{
#[inline]
fn __rust_std_internal_init_fn()
-> RefCell<Single<RustcDefPathParser>> {
RefCell::new(<Single<RustcDefPathParser>>::default())
}
unsafe {
::std::thread::LocalKey::new(const {
if ::std::mem::needs_drop::<RefCell<Single<RustcDefPathParser>>>()
{
|__rust_std_internal_init|
{
#[thread_local]
static __RUST_STD_INTERNAL_VAL:
::std::thread::local_impl::LazyStorage<RefCell<Single<RustcDefPathParser>>,
()> =
::std::thread::local_impl::LazyStorage::new();
__RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
__rust_std_internal_init_fn)
}
} else {
|__rust_std_internal_init|
{
#[thread_local]
static __RUST_STD_INTERNAL_VAL:
::std::thread::local_impl::LazyStorage<RefCell<Single<RustcDefPathParser>>,
!> =
::std::thread::local_impl::LazyStorage::new();
__RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
__rust_std_internal_init_fn)
}
}
})
}
};
for (path, template, accept_fn) in
<Single<RustcDefPathParser>>::ATTRIBUTES {
match accepters.entry(*path) {
Entry::Vacant(e) => {
e.insert(GroupTypeInnerAccept {
template: *template,
accept_fn: Box::new(|cx, args|
{
STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
}),
allowed_targets: <Single<RustcDefPathParser> 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) })
}),
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) })
}),
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) })
}),
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) })
}),
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<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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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<RustcSymbolNameParser>>>
=
{
#[inline]
fn __rust_std_internal_init_fn()
-> RefCell<Single<RustcSymbolNameParser>> {
RefCell::new(<Single<RustcSymbolNameParser>>::default())
}
unsafe {
::std::thread::LocalKey::new(const {
if ::std::mem::needs_drop::<RefCell<Single<RustcSymbolNameParser>>>()
{
|__rust_std_internal_init|
{
#[thread_local]
static __RUST_STD_INTERNAL_VAL:
::std::thread::local_impl::LazyStorage<RefCell<Single<RustcSymbolNameParser>>,
()> =
::std::thread::local_impl::LazyStorage::new();
__RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
__rust_std_internal_init_fn)
}
} else {
|__rust_std_internal_init|
{
#[thread_local]
static __RUST_STD_INTERNAL_VAL:
::std::thread::local_impl::LazyStorage<RefCell<Single<RustcSymbolNameParser>>,
!> =
::std::thread::local_impl::LazyStorage::new();
__RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
__rust_std_internal_init_fn)
}
}
})
}
};
for (path, template, accept_fn) in
<Single<RustcSymbolNameParser>>::ATTRIBUTES {
match accepters.entry(*path) {
Entry::Vacant(e) => {
e.insert(GroupTypeInnerAccept {
template: *template,
accept_fn: Box::new(|cx, args|
{
STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
}),
allowed_targets: <Single<RustcSymbolNameParser> 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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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<PointeeParser>>>>
=
{
#[inline]
fn __rust_std_internal_init_fn()
-> RefCell<Single<WithoutArgs<PointeeParser>>> {
RefCell::new(<Single<WithoutArgs<PointeeParser>>>::default())
}
unsafe {
::std::thread::LocalKey::new(const {
if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<PointeeParser>>>>()
{
|__rust_std_internal_init|
{
#[thread_local]
static __RUST_STD_INTERNAL_VAL:
::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<PointeeParser>>>,
()> =
::std::thread::local_impl::LazyStorage::new();
__RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
__rust_std_internal_init_fn)
}
} else {
|__rust_std_internal_init|
{
#[thread_local]
static __RUST_STD_INTERNAL_VAL:
::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<PointeeParser>>>,
!> =
::std::thread::local_impl::LazyStorage::new();
__RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
__rust_std_internal_init_fn)
}
}
})
}
};
for (path, template, accept_fn) in
<Single<WithoutArgs<PointeeParser>>>::ATTRIBUTES {
match accepters.entry(*path) {
Entry::Vacant(e) => {
e.insert(GroupTypeInnerAccept {
template: *template,
accept_fn: Box::new(|cx, args|
{
STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
}),
allowed_targets: <Single<WithoutArgs<PointeeParser>> as
crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
finalizer: Box::new(|cx|
{ let state = STATE_OBJECT.take(); state.finalize(cx) }),
});
}
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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<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) })
}),
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<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) })
}),
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) })
}),
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<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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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<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) })
}),
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<RustcHiddenTypeOfOpaquesParser>>>>
=
{
#[inline]
fn __rust_std_internal_init_fn()
->
RefCell<Single<WithoutArgs<RustcHiddenTypeOfOpaquesParser>>> {
RefCell::new(<Single<WithoutArgs<RustcHiddenTypeOfOpaquesParser>>>::default())
}
unsafe {
::std::thread::LocalKey::new(const {
if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcHiddenTypeOfOpaquesParser>>>>()
{
|__rust_std_internal_init|
{
#[thread_local]
static __RUST_STD_INTERNAL_VAL:
::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcHiddenTypeOfOpaquesParser>>>,
()> =
::std::thread::local_impl::LazyStorage::new();
__RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
__rust_std_internal_init_fn)
}
} else {
|__rust_std_internal_init|
{
#[thread_local]
static __RUST_STD_INTERNAL_VAL:
::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcHiddenTypeOfOpaquesParser>>>,
!> =
::std::thread::local_impl::LazyStorage::new();
__RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
__rust_std_internal_init_fn)
}
}
})
}
};
for (path, template, accept_fn) in
<Single<WithoutArgs<RustcHiddenTypeOfOpaquesParser>>>::ATTRIBUTES
{
match accepters.entry(*path) {
Entry::Vacant(e) => {
e.insert(GroupTypeInnerAccept {
template: *template,
accept_fn: Box::new(|cx, args|
{
STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
}),
allowed_targets: <Single<WithoutArgs<RustcHiddenTypeOfOpaquesParser>>
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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<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) })
}),
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) })
}),
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) })
}),
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<RustcObjectLifetimeDefaultParser>>>>
=
{
#[inline]
fn __rust_std_internal_init_fn()
->
RefCell<Single<WithoutArgs<RustcObjectLifetimeDefaultParser>>> {
RefCell::new(<Single<WithoutArgs<RustcObjectLifetimeDefaultParser>>>::default())
}
unsafe {
::std::thread::LocalKey::new(const {
if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcObjectLifetimeDefaultParser>>>>()
{
|__rust_std_internal_init|
{
#[thread_local]
static __RUST_STD_INTERNAL_VAL:
::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcObjectLifetimeDefaultParser>>>,
()> =
::std::thread::local_impl::LazyStorage::new();
__RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
__rust_std_internal_init_fn)
}
} else {
|__rust_std_internal_init|
{
#[thread_local]
static __RUST_STD_INTERNAL_VAL:
::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcObjectLifetimeDefaultParser>>>,
!> =
::std::thread::local_impl::LazyStorage::new();
__RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
__rust_std_internal_init_fn)
}
}
})
}
};
for (path, template, accept_fn) in
<Single<WithoutArgs<RustcObjectLifetimeDefaultParser>>>::ATTRIBUTES
{
match accepters.entry(*path) {
Entry::Vacant(e) => {
e.insert(GroupTypeInnerAccept {
template: *template,
accept_fn: Box::new(|cx, args|
{
STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
}),
allowed_targets: <Single<WithoutArgs<RustcObjectLifetimeDefaultParser>>
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) })
}),
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<RustcOutlivesParser>>>>
=
{
#[inline]
fn __rust_std_internal_init_fn()
-> RefCell<Single<WithoutArgs<RustcOutlivesParser>>> {
RefCell::new(<Single<WithoutArgs<RustcOutlivesParser>>>::default())
}
unsafe {
::std::thread::LocalKey::new(const {
if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcOutlivesParser>>>>()
{
|__rust_std_internal_init|
{
#[thread_local]
static __RUST_STD_INTERNAL_VAL:
::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcOutlivesParser>>>,
()> =
::std::thread::local_impl::LazyStorage::new();
__RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
__rust_std_internal_init_fn)
}
} else {
|__rust_std_internal_init|
{
#[thread_local]
static __RUST_STD_INTERNAL_VAL:
::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcOutlivesParser>>>,
!> =
::std::thread::local_impl::LazyStorage::new();
__RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
__rust_std_internal_init_fn)
}
}
})
}
};
for (path, template, accept_fn) in
<Single<WithoutArgs<RustcOutlivesParser>>>::ATTRIBUTES {
match accepters.entry(*path) {
Entry::Vacant(e) => {
e.insert(GroupTypeInnerAccept {
template: *template,
accept_fn: Box::new(|cx, args|
{
STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
}),
allowed_targets: <Single<WithoutArgs<RustcOutlivesParser>>
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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<RustcVarianceOfOpaquesParser>>>>
=
{
#[inline]
fn __rust_std_internal_init_fn()
->
RefCell<Single<WithoutArgs<RustcVarianceOfOpaquesParser>>> {
RefCell::new(<Single<WithoutArgs<RustcVarianceOfOpaquesParser>>>::default())
}
unsafe {
::std::thread::LocalKey::new(const {
if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcVarianceOfOpaquesParser>>>>()
{
|__rust_std_internal_init|
{
#[thread_local]
static __RUST_STD_INTERNAL_VAL:
::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcVarianceOfOpaquesParser>>>,
()> =
::std::thread::local_impl::LazyStorage::new();
__RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
__rust_std_internal_init_fn)
}
} else {
|__rust_std_internal_init|
{
#[thread_local]
static __RUST_STD_INTERNAL_VAL:
::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcVarianceOfOpaquesParser>>>,
!> =
::std::thread::local_impl::LazyStorage::new();
__RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
__rust_std_internal_init_fn)
}
}
})
}
};
for (path, template, accept_fn) in
<Single<WithoutArgs<RustcVarianceOfOpaquesParser>>>::ATTRIBUTES
{
match accepters.entry(*path) {
Entry::Vacant(e) => {
e.insert(GroupTypeInnerAccept {
template: *template,
accept_fn: Box::new(|cx, args|
{
STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
}),
allowed_targets: <Single<WithoutArgs<RustcVarianceOfOpaquesParser>>
as
crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
finalizer: Box::new(|cx|
{ let state = STATE_OBJECT.take(); state.finalize(cx) }),
});
}
Entry::Occupied(_) => {
::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
path));
}
}
}
}
{
const STATE_OBJECT:
::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcVarianceParser>>>>
=
{
#[inline]
fn __rust_std_internal_init_fn()
-> RefCell<Single<WithoutArgs<RustcVarianceParser>>> {
RefCell::new(<Single<WithoutArgs<RustcVarianceParser>>>::default())
}
unsafe {
::std::thread::LocalKey::new(const {
if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcVarianceParser>>>>()
{
|__rust_std_internal_init|
{
#[thread_local]
static __RUST_STD_INTERNAL_VAL:
::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcVarianceParser>>>,
()> =
::std::thread::local_impl::LazyStorage::new();
__RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
__rust_std_internal_init_fn)
}
} else {
|__rust_std_internal_init|
{
#[thread_local]
static __RUST_STD_INTERNAL_VAL:
::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcVarianceParser>>>,
!> =
::std::thread::local_impl::LazyStorage::new();
__RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
__rust_std_internal_init_fn)
}
}
})
}
};
for (path, template, accept_fn) in
<Single<WithoutArgs<RustcVarianceParser>>>::ATTRIBUTES {
match accepters.entry(*path) {
Entry::Vacant(e) => {
e.insert(GroupTypeInnerAccept {
template: *template,
accept_fn: Box::new(|cx, args|
{
STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
}),
allowed_targets: <Single<WithoutArgs<RustcVarianceParser>>
as
crate::attributes::AttributeParser<Early>>::ALLOWED_TARGETS,
finalizer: Box::new(|cx|
{ let state = STATE_OBJECT.take(); state.finalize(cx) }),
});
}
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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<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) })
}),
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<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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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<RustcLayoutParser>>>
=
{
#[inline]
fn __rust_std_internal_init_fn()
-> RefCell<Combine<RustcLayoutParser>> {
RefCell::new(<Combine<RustcLayoutParser>>::default())
}
unsafe {
::std::thread::LocalKey::new(const {
if ::std::mem::needs_drop::<RefCell<Combine<RustcLayoutParser>>>()
{
|__rust_std_internal_init|
{
#[thread_local]
static __RUST_STD_INTERNAL_VAL:
::std::thread::local_impl::LazyStorage<RefCell<Combine<RustcLayoutParser>>,
()> =
::std::thread::local_impl::LazyStorage::new();
__RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
__rust_std_internal_init_fn)
}
} else {
|__rust_std_internal_init|
{
#[thread_local]
static __RUST_STD_INTERNAL_VAL:
::std::thread::local_impl::LazyStorage<RefCell<Combine<RustcLayoutParser>>,
!> =
::std::thread::local_impl::LazyStorage::new();
__RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
__rust_std_internal_init_fn)
}
}
})
}
};
for (path, template, accept_fn) in
<Combine<RustcLayoutParser>>::ATTRIBUTES {
match accepters.entry(*path) {
Entry::Vacant(e) => {
e.insert(GroupTypeInnerAccept {
template: *template,
accept_fn: Box::new(|cx, args|
{
STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
}),
allowed_targets: <Combine<RustcLayoutParser> as
crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
finalizer: Box::new(|cx|
{ let state = STATE_OBJECT.take(); state.finalize(cx) }),
});
}
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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<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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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<RustcDefPathParser>>>
=
{
#[inline]
fn __rust_std_internal_init_fn()
-> RefCell<Single<RustcDefPathParser>> {
RefCell::new(<Single<RustcDefPathParser>>::default())
}
unsafe {
::std::thread::LocalKey::new(const {
if ::std::mem::needs_drop::<RefCell<Single<RustcDefPathParser>>>()
{
|__rust_std_internal_init|
{
#[thread_local]
static __RUST_STD_INTERNAL_VAL:
::std::thread::local_impl::LazyStorage<RefCell<Single<RustcDefPathParser>>,
()> =
::std::thread::local_impl::LazyStorage::new();
__RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
__rust_std_internal_init_fn)
}
} else {
|__rust_std_internal_init|
{
#[thread_local]
static __RUST_STD_INTERNAL_VAL:
::std::thread::local_impl::LazyStorage<RefCell<Single<RustcDefPathParser>>,
!> =
::std::thread::local_impl::LazyStorage::new();
__RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
__rust_std_internal_init_fn)
}
}
})
}
};
for (path, template, accept_fn) in
<Single<RustcDefPathParser>>::ATTRIBUTES {
match accepters.entry(*path) {
Entry::Vacant(e) => {
e.insert(GroupTypeInnerAccept {
template: *template,
accept_fn: Box::new(|cx, args|
{
STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
}),
allowed_targets: <Single<RustcDefPathParser> 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) })
}),
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) })
}),
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) })
}),
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) })
}),
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<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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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<RustcSymbolNameParser>>>
=
{
#[inline]
fn __rust_std_internal_init_fn()
-> RefCell<Single<RustcSymbolNameParser>> {
RefCell::new(<Single<RustcSymbolNameParser>>::default())
}
unsafe {
::std::thread::LocalKey::new(const {
if ::std::mem::needs_drop::<RefCell<Single<RustcSymbolNameParser>>>()
{
|__rust_std_internal_init|
{
#[thread_local]
static __RUST_STD_INTERNAL_VAL:
::std::thread::local_impl::LazyStorage<RefCell<Single<RustcSymbolNameParser>>,
()> =
::std::thread::local_impl::LazyStorage::new();
__RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
__rust_std_internal_init_fn)
}
} else {
|__rust_std_internal_init|
{
#[thread_local]
static __RUST_STD_INTERNAL_VAL:
::std::thread::local_impl::LazyStorage<RefCell<Single<RustcSymbolNameParser>>,
!> =
::std::thread::local_impl::LazyStorage::new();
__RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
__rust_std_internal_init_fn)
}
}
})
}
};
for (path, template, accept_fn) in
<Single<RustcSymbolNameParser>>::ATTRIBUTES {
match accepters.entry(*path) {
Entry::Vacant(e) => {
e.insert(GroupTypeInnerAccept {
template: *template,
accept_fn: Box::new(|cx, args|
{
STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
}),
allowed_targets: <Single<RustcSymbolNameParser> 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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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<PointeeParser>>>>
=
{
#[inline]
fn __rust_std_internal_init_fn()
-> RefCell<Single<WithoutArgs<PointeeParser>>> {
RefCell::new(<Single<WithoutArgs<PointeeParser>>>::default())
}
unsafe {
::std::thread::LocalKey::new(const {
if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<PointeeParser>>>>()
{
|__rust_std_internal_init|
{
#[thread_local]
static __RUST_STD_INTERNAL_VAL:
::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<PointeeParser>>>,
()> =
::std::thread::local_impl::LazyStorage::new();
__RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
__rust_std_internal_init_fn)
}
} else {
|__rust_std_internal_init|
{
#[thread_local]
static __RUST_STD_INTERNAL_VAL:
::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<PointeeParser>>>,
!> =
::std::thread::local_impl::LazyStorage::new();
__RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
__rust_std_internal_init_fn)
}
}
})
}
};
for (path, template, accept_fn) in
<Single<WithoutArgs<PointeeParser>>>::ATTRIBUTES {
match accepters.entry(*path) {
Entry::Vacant(e) => {
e.insert(GroupTypeInnerAccept {
template: *template,
accept_fn: Box::new(|cx, args|
{
STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
}),
allowed_targets: <Single<WithoutArgs<PointeeParser>> as
crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
finalizer: Box::new(|cx|
{ let state = STATE_OBJECT.take(); state.finalize(cx) }),
});
}
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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<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) })
}),
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<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) })
}),
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) })
}),
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<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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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<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) })
}),
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<RustcHiddenTypeOfOpaquesParser>>>>
=
{
#[inline]
fn __rust_std_internal_init_fn()
->
RefCell<Single<WithoutArgs<RustcHiddenTypeOfOpaquesParser>>> {
RefCell::new(<Single<WithoutArgs<RustcHiddenTypeOfOpaquesParser>>>::default())
}
unsafe {
::std::thread::LocalKey::new(const {
if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcHiddenTypeOfOpaquesParser>>>>()
{
|__rust_std_internal_init|
{
#[thread_local]
static __RUST_STD_INTERNAL_VAL:
::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcHiddenTypeOfOpaquesParser>>>,
()> =
::std::thread::local_impl::LazyStorage::new();
__RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
__rust_std_internal_init_fn)
}
} else {
|__rust_std_internal_init|
{
#[thread_local]
static __RUST_STD_INTERNAL_VAL:
::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcHiddenTypeOfOpaquesParser>>>,
!> =
::std::thread::local_impl::LazyStorage::new();
__RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
__rust_std_internal_init_fn)
}
}
})
}
};
for (path, template, accept_fn) in
<Single<WithoutArgs<RustcHiddenTypeOfOpaquesParser>>>::ATTRIBUTES
{
match accepters.entry(*path) {
Entry::Vacant(e) => {
e.insert(GroupTypeInnerAccept {
template: *template,
accept_fn: Box::new(|cx, args|
{
STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
}),
allowed_targets: <Single<WithoutArgs<RustcHiddenTypeOfOpaquesParser>>
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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<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) })
}),
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) })
}),
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) })
}),
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<RustcObjectLifetimeDefaultParser>>>>
=
{
#[inline]
fn __rust_std_internal_init_fn()
->
RefCell<Single<WithoutArgs<RustcObjectLifetimeDefaultParser>>> {
RefCell::new(<Single<WithoutArgs<RustcObjectLifetimeDefaultParser>>>::default())
}
unsafe {
::std::thread::LocalKey::new(const {
if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcObjectLifetimeDefaultParser>>>>()
{
|__rust_std_internal_init|
{
#[thread_local]
static __RUST_STD_INTERNAL_VAL:
::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcObjectLifetimeDefaultParser>>>,
()> =
::std::thread::local_impl::LazyStorage::new();
__RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
__rust_std_internal_init_fn)
}
} else {
|__rust_std_internal_init|
{
#[thread_local]
static __RUST_STD_INTERNAL_VAL:
::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcObjectLifetimeDefaultParser>>>,
!> =
::std::thread::local_impl::LazyStorage::new();
__RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
__rust_std_internal_init_fn)
}
}
})
}
};
for (path, template, accept_fn) in
<Single<WithoutArgs<RustcObjectLifetimeDefaultParser>>>::ATTRIBUTES
{
match accepters.entry(*path) {
Entry::Vacant(e) => {
e.insert(GroupTypeInnerAccept {
template: *template,
accept_fn: Box::new(|cx, args|
{
STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
}),
allowed_targets: <Single<WithoutArgs<RustcObjectLifetimeDefaultParser>>
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) })
}),
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<RustcOutlivesParser>>>>
=
{
#[inline]
fn __rust_std_internal_init_fn()
-> RefCell<Single<WithoutArgs<RustcOutlivesParser>>> {
RefCell::new(<Single<WithoutArgs<RustcOutlivesParser>>>::default())
}
unsafe {
::std::thread::LocalKey::new(const {
if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcOutlivesParser>>>>()
{
|__rust_std_internal_init|
{
#[thread_local]
static __RUST_STD_INTERNAL_VAL:
::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcOutlivesParser>>>,
()> =
::std::thread::local_impl::LazyStorage::new();
__RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
__rust_std_internal_init_fn)
}
} else {
|__rust_std_internal_init|
{
#[thread_local]
static __RUST_STD_INTERNAL_VAL:
::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcOutlivesParser>>>,
!> =
::std::thread::local_impl::LazyStorage::new();
__RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
__rust_std_internal_init_fn)
}
}
})
}
};
for (path, template, accept_fn) in
<Single<WithoutArgs<RustcOutlivesParser>>>::ATTRIBUTES {
match accepters.entry(*path) {
Entry::Vacant(e) => {
e.insert(GroupTypeInnerAccept {
template: *template,
accept_fn: Box::new(|cx, args|
{
STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
}),
allowed_targets: <Single<WithoutArgs<RustcOutlivesParser>>
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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) })
}),
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<RustcVarianceOfOpaquesParser>>>>
=
{
#[inline]
fn __rust_std_internal_init_fn()
->
RefCell<Single<WithoutArgs<RustcVarianceOfOpaquesParser>>> {
RefCell::new(<Single<WithoutArgs<RustcVarianceOfOpaquesParser>>>::default())
}
unsafe {
::std::thread::LocalKey::new(const {
if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcVarianceOfOpaquesParser>>>>()
{
|__rust_std_internal_init|
{
#[thread_local]
static __RUST_STD_INTERNAL_VAL:
::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcVarianceOfOpaquesParser>>>,
()> =
::std::thread::local_impl::LazyStorage::new();
__RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
__rust_std_internal_init_fn)
}
} else {
|__rust_std_internal_init|
{
#[thread_local]
static __RUST_STD_INTERNAL_VAL:
::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcVarianceOfOpaquesParser>>>,
!> =
::std::thread::local_impl::LazyStorage::new();
__RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
__rust_std_internal_init_fn)
}
}
})
}
};
for (path, template, accept_fn) in
<Single<WithoutArgs<RustcVarianceOfOpaquesParser>>>::ATTRIBUTES
{
match accepters.entry(*path) {
Entry::Vacant(e) => {
e.insert(GroupTypeInnerAccept {
template: *template,
accept_fn: Box::new(|cx, args|
{
STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
}),
allowed_targets: <Single<WithoutArgs<RustcVarianceOfOpaquesParser>>
as
crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
finalizer: Box::new(|cx|
{ let state = STATE_OBJECT.take(); state.finalize(cx) }),
});
}
Entry::Occupied(_) => {
::core::panicking::panic_fmt(format_args!("Attribute {0:?} has multiple accepters",
path));
}
}
}
}
{
const STATE_OBJECT:
::std::thread::LocalKey<RefCell<Single<WithoutArgs<RustcVarianceParser>>>>
=
{
#[inline]
fn __rust_std_internal_init_fn()
-> RefCell<Single<WithoutArgs<RustcVarianceParser>>> {
RefCell::new(<Single<WithoutArgs<RustcVarianceParser>>>::default())
}
unsafe {
::std::thread::LocalKey::new(const {
if ::std::mem::needs_drop::<RefCell<Single<WithoutArgs<RustcVarianceParser>>>>()
{
|__rust_std_internal_init|
{
#[thread_local]
static __RUST_STD_INTERNAL_VAL:
::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcVarianceParser>>>,
()> =
::std::thread::local_impl::LazyStorage::new();
__RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
__rust_std_internal_init_fn)
}
} else {
|__rust_std_internal_init|
{
#[thread_local]
static __RUST_STD_INTERNAL_VAL:
::std::thread::local_impl::LazyStorage<RefCell<Single<WithoutArgs<RustcVarianceParser>>>,
!> =
::std::thread::local_impl::LazyStorage::new();
__RUST_STD_INTERNAL_VAL.get_or_init(__rust_std_internal_init,
__rust_std_internal_init_fn)
}
}
})
}
};
for (path, template, accept_fn) in
<Single<WithoutArgs<RustcVarianceParser>>>::ATTRIBUTES {
match accepters.entry(*path) {
Entry::Vacant(e) => {
e.insert(GroupTypeInnerAccept {
template: *template,
accept_fn: Box::new(|cx, args|
{
STATE_OBJECT.with_borrow_mut(|s| { accept_fn(s, cx, args) })
}),
allowed_targets: <Single<WithoutArgs<RustcVarianceParser>>
as
crate::attributes::AttributeParser<Late>>::ALLOWED_TARGETS,
finalizer: Box::new(|cx|
{ let state = STATE_OBJECT.take(); state.finalize(cx) }),
});
}
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) })
}),
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) })
}),
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!(
143 pub(crate) static ATTRIBUTE_PARSERS = [
144 // tidy-alphabetical-start
145 BodyStabilityParser,
146 ConfusablesParser,
147 ConstStabilityParser,
148 DocParser,
149 MacroUseParser,
150 NakedParser,
151 OnConstParser,
152 OnUnimplementedParser,
153 RustcAlignParser,
154 RustcAlignStaticParser,
155 RustcCguTestAttributeParser,
156 StabilityParser,
157 UsedParser,
158 // tidy-alphabetical-end
159
160 // tidy-alphabetical-start
161 Combine<AllowInternalUnstableParser>,
162 Combine<CrateTypeParser>,
163 Combine<DebuggerViualizerParser>,
164 Combine<FeatureParser>,
165 Combine<ForceTargetFeatureParser>,
166 Combine<LinkParser>,
167 Combine<RegisterToolParser>,
168 Combine<ReprParser>,
169 Combine<RustcAllowConstFnUnstableParser>,
170 Combine<RustcCleanParser>,
171 Combine<RustcLayoutParser>,
172 Combine<RustcMirParser>,
173 Combine<RustcThenThisWouldNeedParser>,
174 Combine<TargetFeatureParser>,
175 Combine<UnstableFeatureBoundParser>,
176 // tidy-alphabetical-end
177
178 // tidy-alphabetical-start
179 Single<CfiEncodingParser>,
180 Single<CollapseDebugInfoParser>,
181 Single<CoverageParser>,
182 Single<CrateNameParser>,
183 Single<CustomMirParser>,
184 Single<DeprecatedParser>,
185 Single<DoNotRecommendParser>,
186 Single<ExportNameParser>,
187 Single<IgnoreParser>,
188 Single<InlineParser>,
189 Single<InstructionSetParser>,
190 Single<LangParser>,
191 Single<LinkNameParser>,
192 Single<LinkOrdinalParser>,
193 Single<LinkSectionParser>,
194 Single<LinkageParser>,
195 Single<MacroExportParser>,
196 Single<MoveSizeLimitParser>,
197 Single<MustNotSuspendParser>,
198 Single<MustUseParser>,
199 Single<OptimizeParser>,
200 Single<PatchableFunctionEntryParser>,
201 Single<PathAttributeParser>,
202 Single<PatternComplexityLimitParser>,
203 Single<ProcMacroDeriveParser>,
204 Single<RecursionLimitParser>,
205 Single<ReexportTestHarnessMainParser>,
206 Single<RustcAbiParser>,
207 Single<RustcAllocatorZeroedVariantParser>,
208 Single<RustcAutodiffParser>,
209 Single<RustcBuiltinMacroParser>,
210 Single<RustcDefPathParser>,
211 Single<RustcDeprecatedSafe2024Parser>,
212 Single<RustcDiagnosticItemParser>,
213 Single<RustcDocPrimitiveParser>,
214 Single<RustcDummyParser>,
215 Single<RustcForceInlineParser>,
216 Single<RustcIfThisChangedParser>,
217 Single<RustcLayoutScalarValidRangeEndParser>,
218 Single<RustcLayoutScalarValidRangeStartParser>,
219 Single<RustcLegacyConstGenericsParser>,
220 Single<RustcLintOptDenyFieldAccessParser>,
221 Single<RustcMacroTransparencyParser>,
222 Single<RustcMustImplementOneOfParser>,
223 Single<RustcNeverTypeOptionsParser>,
224 Single<RustcObjcClassParser>,
225 Single<RustcObjcSelectorParser>,
226 Single<RustcReservationImplParser>,
227 Single<RustcScalableVectorParser>,
228 Single<RustcSimdMonomorphizeLaneLimitParser>,
229 Single<RustcSkipDuringMethodDispatchParser>,
230 Single<RustcSymbolNameParser>,
231 Single<RustcTestMarkerParser>,
232 Single<SanitizeParser>,
233 Single<ShouldPanicParser>,
234 Single<TestRunnerParser>,
235 Single<TypeLengthLimitParser>,
236 Single<WindowsSubsystemParser>,
237 Single<WithoutArgs<AllowInternalUnsafeParser>>,
238 Single<WithoutArgs<AutomaticallyDerivedParser>>,
239 Single<WithoutArgs<ColdParser>>,
240 Single<WithoutArgs<CompilerBuiltinsParser>>,
241 Single<WithoutArgs<ConstContinueParser>>,
242 Single<WithoutArgs<CoroutineParser>>,
243 Single<WithoutArgs<DefaultLibAllocatorParser>>,
244 Single<WithoutArgs<ExportStableParser>>,
245 Single<WithoutArgs<FfiConstParser>>,
246 Single<WithoutArgs<FfiPureParser>>,
247 Single<WithoutArgs<FundamentalParser>>,
248 Single<WithoutArgs<LoopMatchParser>>,
249 Single<WithoutArgs<MacroEscapeParser>>,
250 Single<WithoutArgs<MarkerParser>>,
251 Single<WithoutArgs<MayDangleParser>>,
252 Single<WithoutArgs<NeedsAllocatorParser>>,
253 Single<WithoutArgs<NeedsPanicRuntimeParser>>,
254 Single<WithoutArgs<NoBuiltinsParser>>,
255 Single<WithoutArgs<NoCoreParser>>,
256 Single<WithoutArgs<NoImplicitPreludeParser>>,
257 Single<WithoutArgs<NoLinkParser>>,
258 Single<WithoutArgs<NoMainParser>>,
259 Single<WithoutArgs<NoMangleParser>>,
260 Single<WithoutArgs<NoStdParser>>,
261 Single<WithoutArgs<NonExhaustiveParser>>,
262 Single<WithoutArgs<PanicHandlerParser>>,
263 Single<WithoutArgs<PanicRuntimeParser>>,
264 Single<WithoutArgs<PinV2Parser>>,
265 Single<WithoutArgs<PointeeParser>>,
266 Single<WithoutArgs<PreludeImportParser>>,
267 Single<WithoutArgs<ProcMacroAttributeParser>>,
268 Single<WithoutArgs<ProcMacroParser>>,
269 Single<WithoutArgs<ProfilerRuntimeParser>>,
270 Single<WithoutArgs<RustcAllocatorParser>>,
271 Single<WithoutArgs<RustcAllocatorZeroedParser>>,
272 Single<WithoutArgs<RustcAllowIncoherentImplParser>>,
273 Single<WithoutArgs<RustcAsPtrParser>>,
274 Single<WithoutArgs<RustcCaptureAnalysisParser>>,
275 Single<WithoutArgs<RustcCoherenceIsCoreParser>>,
276 Single<WithoutArgs<RustcCoinductiveParser>>,
277 Single<WithoutArgs<RustcConstStableIndirectParser>>,
278 Single<WithoutArgs<RustcConversionSuggestionParser>>,
279 Single<WithoutArgs<RustcDeallocatorParser>>,
280 Single<WithoutArgs<RustcDelayedBugFromInsideQueryParser>>,
281 Single<WithoutArgs<RustcDenyExplicitImplParser>>,
282 Single<WithoutArgs<RustcDoNotConstCheckParser>>,
283 Single<WithoutArgs<RustcDumpDefParentsParser>>,
284 Single<WithoutArgs<RustcDumpItemBoundsParser>>,
285 Single<WithoutArgs<RustcDumpPredicatesParser>>,
286 Single<WithoutArgs<RustcDumpUserArgsParser>>,
287 Single<WithoutArgs<RustcDumpVtableParser>>,
288 Single<WithoutArgs<RustcDynIncompatibleTraitParser>>,
289 Single<WithoutArgs<RustcEffectiveVisibilityParser>>,
290 Single<WithoutArgs<RustcEiiForeignItemParser>>,
291 Single<WithoutArgs<RustcEvaluateWhereClausesParser>>,
292 Single<WithoutArgs<RustcHasIncoherentInherentImplsParser>>,
293 Single<WithoutArgs<RustcHiddenTypeOfOpaquesParser>>,
294 Single<WithoutArgs<RustcInheritOverflowChecksParser>>,
295 Single<WithoutArgs<RustcInsignificantDtorParser>>,
296 Single<WithoutArgs<RustcIntrinsicConstStableIndirectParser>>,
297 Single<WithoutArgs<RustcIntrinsicParser>>,
298 Single<WithoutArgs<RustcLintOptTyParser>>,
299 Single<WithoutArgs<RustcLintQueryInstabilityParser>>,
300 Single<WithoutArgs<RustcLintUntrackedQueryInformationParser>>,
301 Single<WithoutArgs<RustcMainParser>>,
302 Single<WithoutArgs<RustcNeverReturnsNullPtrParser>>,
303 Single<WithoutArgs<RustcNoImplicitAutorefsParser>>,
304 Single<WithoutArgs<RustcNoImplicitBoundsParser>>,
305 Single<WithoutArgs<RustcNoMirInlineParser>>,
306 Single<WithoutArgs<RustcNonConstTraitMethodParser>>,
307 Single<WithoutArgs<RustcNonnullOptimizationGuaranteedParser>>,
308 Single<WithoutArgs<RustcNounwindParser>>,
309 Single<WithoutArgs<RustcObjectLifetimeDefaultParser>>,
310 Single<WithoutArgs<RustcOffloadKernelParser>>,
311 Single<WithoutArgs<RustcOutlivesParser>>,
312 Single<WithoutArgs<RustcParenSugarParser>>,
313 Single<WithoutArgs<RustcPassByValueParser>>,
314 Single<WithoutArgs<RustcPassIndirectlyInNonRusticAbisParser>>,
315 Single<WithoutArgs<RustcPreserveUbChecksParser>>,
316 Single<WithoutArgs<RustcProcMacroDeclsParser>>,
317 Single<WithoutArgs<RustcPubTransparentParser>>,
318 Single<WithoutArgs<RustcReallocatorParser>>,
319 Single<WithoutArgs<RustcRegionsParser>>,
320 Single<WithoutArgs<RustcShouldNotBeCalledOnConstItemsParser>>,
321 Single<WithoutArgs<RustcSpecializationTraitParser>>,
322 Single<WithoutArgs<RustcStdInternalSymbolParser>>,
323 Single<WithoutArgs<RustcStrictCoherenceParser>>,
324 Single<WithoutArgs<RustcTrivialFieldReadsParser>>,
325 Single<WithoutArgs<RustcUnsafeSpecializationMarkerParser>>,
326 Single<WithoutArgs<RustcVarianceOfOpaquesParser>>,
327 Single<WithoutArgs<RustcVarianceParser>>,
328 Single<WithoutArgs<ThreadLocalParser>>,
329 Single<WithoutArgs<TrackCallerParser>>,
330 // tidy-alphabetical-end
331 ];
332);
333
334mod private {
335 pub trait Sealed {}
336 impl Sealed for super::Early {}
337 impl Sealed for super::Late {}
338}
339
340// allow because it's a sealed trait
341#[allow(private_interfaces)]
342pub trait Stage: Sized + 'static + Sealed {
343 type Id: Copy;
344
345 fn parsers() -> &'static GroupType<Self>;
346
347 fn emit_err<'sess>(
348 &self,
349 sess: &'sess Session,
350 diag: impl for<'x> Diagnostic<'x>,
351 ) -> ErrorGuaranteed;
352
353 fn should_emit(&self) -> ShouldEmit;
354}
355
356// allow because it's a sealed trait
357#[allow(private_interfaces)]
358impl Stage for Early {
359 type Id = NodeId;
360
361 fn parsers() -> &'static GroupType<Self> {
362 &early::ATTRIBUTE_PARSERS
363 }
364 fn emit_err<'sess>(
365 &self,
366 sess: &'sess Session,
367 diag: impl for<'x> Diagnostic<'x>,
368 ) -> ErrorGuaranteed {
369 self.should_emit().emit_err(sess.dcx().create_err(diag))
370 }
371
372 fn should_emit(&self) -> ShouldEmit {
373 self.emit_errors
374 }
375}
376
377// allow because it's a sealed trait
378#[allow(private_interfaces)]
379impl Stage for Late {
380 type Id = HirId;
381
382 fn parsers() -> &'static GroupType<Self> {
383 &late::ATTRIBUTE_PARSERS
384 }
385 fn emit_err<'sess>(
386 &self,
387 tcx: &'sess Session,
388 diag: impl for<'x> Diagnostic<'x>,
389 ) -> ErrorGuaranteed {
390 tcx.dcx().emit_err(diag)
391 }
392
393 fn should_emit(&self) -> ShouldEmit {
394 ShouldEmit::ErrorsAndLints { recovery: Recovery::Allowed }
395 }
396}
397
398/// used when parsing attributes for miscellaneous things *before* ast lowering
399pub struct Early {
400 /// Whether to emit errors or delay them as a bug
401 /// For most attributes, the attribute will be parsed again in the `Late` stage and in this case the errors should be delayed
402 /// But for some, such as `cfg`, the attribute will be removed before the `Late` stage so errors must be emitted
403 pub emit_errors: ShouldEmit,
404}
405/// used when parsing attributes during ast lowering
406pub struct Late;
407
408/// Context given to every attribute parser when accepting
409///
410/// Gives [`AttributeParser`]s enough information to create errors, for example.
411pub struct AcceptContext<'f, 'sess, S: Stage> {
412 pub(crate) shared: SharedContext<'f, 'sess, S>,
413
414 /// The outer span of the attribute currently being parsed
415 /// #[attribute(...)]
416 /// ^^^^^^^^^^^^^^^^^ outer span
417 /// For attributes in `cfg_attr`, the outer span and inner spans are equal.
418 pub(crate) attr_span: Span,
419 /// The inner span of the attribute currently being parsed
420 /// #[attribute(...)]
421 /// ^^^^^^^^^^^^^^ inner span
422 pub(crate) inner_span: Span,
423
424 /// Whether it is an inner or outer attribute
425 pub(crate) attr_style: AttrStyle,
426
427 /// A description of the thing we are parsing using this attribute parser
428 /// We are not only using these parsers for attributes, but also for macros such as the `cfg!()` macro.
429 pub(crate) parsed_description: ParsedDescription,
430
431 /// The expected structure of the attribute.
432 ///
433 /// Used in reporting errors to give a hint to users what the attribute *should* look like.
434 pub(crate) template: &'f AttributeTemplate,
435
436 /// The name of the attribute we're currently accepting.
437 pub(crate) attr_path: AttrPath,
438}
439
440impl<'f, 'sess: 'f, S: Stage> SharedContext<'f, 'sess, S> {
441 pub(crate) fn emit_err(&self, diag: impl for<'x> Diagnostic<'x>) -> ErrorGuaranteed {
442 self.stage.emit_err(&self.sess, diag)
443 }
444
445 /// Emit a lint. This method is somewhat special, since lints emitted during attribute parsing
446 /// must be delayed until after HIR is built. This method will take care of the details of
447 /// that.
448 pub(crate) fn emit_lint(&mut self, lint: &'static Lint, kind: AttributeLintKind, span: Span) {
449 if !#[allow(non_exhaustive_omitted_patterns)] match self.stage.should_emit() {
ShouldEmit::ErrorsAndLints { .. } | ShouldEmit::EarlyFatal {
also_emit_lints: true } => true,
_ => false,
}matches!(
450 self.stage.should_emit(),
451 ShouldEmit::ErrorsAndLints { .. } | ShouldEmit::EarlyFatal { also_emit_lints: true }
452 ) {
453 return;
454 }
455 (self.emit_lint)(LintId::of(lint), span, kind);
456 }
457
458 pub(crate) fn warn_unused_duplicate(&mut self, used_span: Span, unused_span: Span) {
459 self.emit_lint(
460 rustc_session::lint::builtin::UNUSED_ATTRIBUTES,
461 AttributeLintKind::UnusedDuplicate {
462 this: unused_span,
463 other: used_span,
464 warning: false,
465 },
466 unused_span,
467 )
468 }
469
470 pub(crate) fn warn_unused_duplicate_future_error(
471 &mut self,
472 used_span: Span,
473 unused_span: Span,
474 ) {
475 self.emit_lint(
476 rustc_session::lint::builtin::UNUSED_ATTRIBUTES,
477 AttributeLintKind::UnusedDuplicate {
478 this: unused_span,
479 other: used_span,
480 warning: true,
481 },
482 unused_span,
483 )
484 }
485}
486
487impl<'f, 'sess: 'f, S: Stage> AcceptContext<'f, 'sess, S> {
488 fn emit_parse_error(
489 &self,
490 span: Span,
491 reason: AttributeParseErrorReason<'_>,
492 ) -> ErrorGuaranteed {
493 self.emit_err(AttributeParseError {
494 span,
495 attr_span: self.attr_span,
496 template: self.template.clone(),
497 path: self.attr_path.clone(),
498 description: self.parsed_description,
499 reason,
500 suggestions: self.suggestions(),
501 })
502 }
503
504 /// error that a string literal was expected.
505 /// You can optionally give the literal you did find (which you found not to be a string literal)
506 /// which can make better errors. For example, if the literal was a byte string it will suggest
507 /// removing the `b` prefix.
508 pub(crate) fn expected_string_literal(
509 &self,
510 span: Span,
511 actual_literal: Option<&MetaItemLit>,
512 ) -> ErrorGuaranteed {
513 self.emit_parse_error(
514 span,
515 AttributeParseErrorReason::ExpectedStringLiteral {
516 byte_string: actual_literal.and_then(|i| {
517 i.kind.is_bytestr().then(|| self.sess().source_map().start_point(i.span))
518 }),
519 },
520 )
521 }
522
523 /// Error that a filename string literal was expected.
524 pub(crate) fn expected_filename_literal(&self, span: Span) {
525 self.emit_parse_error(span, AttributeParseErrorReason::ExpectedFilenameLiteral);
526 }
527
528 pub(crate) fn expected_integer_literal(&self, span: Span) -> ErrorGuaranteed {
529 self.emit_parse_error(span, AttributeParseErrorReason::ExpectedIntegerLiteral)
530 }
531
532 pub(crate) fn expected_integer_literal_in_range(
533 &self,
534 span: Span,
535 lower_bound: isize,
536 upper_bound: isize,
537 ) -> ErrorGuaranteed {
538 self.emit_parse_error(
539 span,
540 AttributeParseErrorReason::ExpectedIntegerLiteralInRange { lower_bound, upper_bound },
541 )
542 }
543
544 pub(crate) fn expected_list(&self, span: Span, args: &ArgParser) -> ErrorGuaranteed {
545 let span = match args {
546 ArgParser::NoArgs => span,
547 ArgParser::List(list) => list.span,
548 ArgParser::NameValue(nv) => nv.args_span(),
549 };
550 self.emit_parse_error(span, AttributeParseErrorReason::ExpectedList)
551 }
552
553 pub(crate) fn expected_list_with_num_args_or_more(
554 &self,
555 args: usize,
556 span: Span,
557 ) -> ErrorGuaranteed {
558 self.emit_parse_error(
559 span,
560 AttributeParseErrorReason::ExpectedListWithNumArgsOrMore { args },
561 )
562 }
563
564 pub(crate) fn expected_list_or_no_args(&self, span: Span) -> ErrorGuaranteed {
565 self.emit_parse_error(span, AttributeParseErrorReason::ExpectedListOrNoArgs)
566 }
567
568 pub(crate) fn expected_nv_or_no_args(&self, span: Span) -> ErrorGuaranteed {
569 self.emit_parse_error(span, AttributeParseErrorReason::ExpectedNameValueOrNoArgs)
570 }
571
572 pub(crate) fn expected_non_empty_string_literal(&self, span: Span) -> ErrorGuaranteed {
573 self.emit_parse_error(span, AttributeParseErrorReason::ExpectedNonEmptyStringLiteral)
574 }
575
576 pub(crate) fn expected_no_args(&self, span: Span) -> ErrorGuaranteed {
577 self.emit_parse_error(span, AttributeParseErrorReason::ExpectedNoArgs)
578 }
579
580 /// emit an error that a `name` was expected here
581 pub(crate) fn expected_identifier(&self, span: Span) -> ErrorGuaranteed {
582 self.emit_parse_error(span, AttributeParseErrorReason::ExpectedIdentifier)
583 }
584
585 /// emit an error that a `name = value` pair was expected at this span. The symbol can be given for
586 /// a nicer error message talking about the specific name that was found lacking a value.
587 pub(crate) fn expected_name_value(&self, span: Span, name: Option<Symbol>) -> ErrorGuaranteed {
588 self.emit_parse_error(span, AttributeParseErrorReason::ExpectedNameValue(name))
589 }
590
591 /// emit an error that a `name = value` pair was found where that name was already seen.
592 pub(crate) fn duplicate_key(&self, span: Span, key: Symbol) -> ErrorGuaranteed {
593 self.emit_parse_error(span, AttributeParseErrorReason::DuplicateKey(key))
594 }
595
596 /// an error that should be emitted when a [`MetaItemOrLitParser`](crate::parser::MetaItemOrLitParser)
597 /// was expected *not* to be a literal, but instead a meta item.
598 pub(crate) fn unexpected_literal(&self, span: Span) -> ErrorGuaranteed {
599 self.emit_parse_error(span, AttributeParseErrorReason::UnexpectedLiteral)
600 }
601
602 pub(crate) fn expected_single_argument(&self, span: Span) -> ErrorGuaranteed {
603 self.emit_parse_error(span, AttributeParseErrorReason::ExpectedSingleArgument)
604 }
605
606 pub(crate) fn expected_at_least_one_argument(&self, span: Span) -> ErrorGuaranteed {
607 self.emit_parse_error(span, AttributeParseErrorReason::ExpectedAtLeastOneArgument)
608 }
609
610 /// produces an error along the lines of `expected one of [foo, meow]`
611 pub(crate) fn expected_specific_argument(
612 &self,
613 span: Span,
614 possibilities: &[Symbol],
615 ) -> ErrorGuaranteed {
616 self.emit_parse_error(
617 span,
618 AttributeParseErrorReason::ExpectedSpecificArgument {
619 possibilities,
620 strings: false,
621 list: false,
622 },
623 )
624 }
625
626 /// produces an error along the lines of `expected one of [foo, meow] as an argument`.
627 /// i.e. slightly different wording to [`expected_specific_argument`](Self::expected_specific_argument).
628 pub(crate) fn expected_specific_argument_and_list(
629 &self,
630 span: Span,
631 possibilities: &[Symbol],
632 ) -> ErrorGuaranteed {
633 self.emit_parse_error(
634 span,
635 AttributeParseErrorReason::ExpectedSpecificArgument {
636 possibilities,
637 strings: false,
638 list: true,
639 },
640 )
641 }
642
643 /// produces an error along the lines of `expected one of ["foo", "meow"]`
644 pub(crate) fn expected_specific_argument_strings(
645 &self,
646 span: Span,
647 possibilities: &[Symbol],
648 ) -> ErrorGuaranteed {
649 self.emit_parse_error(
650 span,
651 AttributeParseErrorReason::ExpectedSpecificArgument {
652 possibilities,
653 strings: true,
654 list: false,
655 },
656 )
657 }
658
659 pub(crate) fn warn_empty_attribute(&mut self, span: Span) {
660 let attr_path = self.attr_path.clone().to_string();
661 let valid_without_list = self.template.word;
662 self.emit_lint(
663 rustc_session::lint::builtin::UNUSED_ATTRIBUTES,
664 AttributeLintKind::EmptyAttribute { first_span: span, attr_path, valid_without_list },
665 span,
666 );
667 }
668
669 pub(crate) fn warn_ill_formed_attribute_input(&mut self, lint: &'static Lint) {
670 let suggestions = self.suggestions();
671 let span = self.attr_span;
672 self.emit_lint(
673 lint,
674 AttributeLintKind::IllFormedAttributeInput { suggestions, docs: None },
675 span,
676 );
677 }
678
679 pub(crate) fn suggestions(&self) -> Vec<String> {
680 let style = match self.parsed_description {
681 // If the outer and inner spans are equal, we are parsing an embedded attribute
682 ParsedDescription::Attribute if self.attr_span == self.inner_span => {
683 AttrSuggestionStyle::EmbeddedAttribute
684 }
685 ParsedDescription::Attribute => AttrSuggestionStyle::Attribute(self.attr_style),
686 ParsedDescription::Macro => AttrSuggestionStyle::Macro,
687 };
688
689 self.template.suggestions(style, &self.attr_path)
690 }
691}
692
693impl<'f, 'sess, S: Stage> Deref for AcceptContext<'f, 'sess, S> {
694 type Target = SharedContext<'f, 'sess, S>;
695
696 fn deref(&self) -> &Self::Target {
697 &self.shared
698 }
699}
700
701impl<'f, 'sess, S: Stage> DerefMut for AcceptContext<'f, 'sess, S> {
702 fn deref_mut(&mut self) -> &mut Self::Target {
703 &mut self.shared
704 }
705}
706
707/// Context given to every attribute parser during finalization.
708///
709/// Gives [`AttributeParser`](crate::attributes::AttributeParser)s enough information to create
710/// errors, for example.
711pub struct SharedContext<'p, 'sess, S: Stage> {
712 /// The parse context, gives access to the session and the
713 /// diagnostics context.
714 pub(crate) cx: &'p mut AttributeParser<'sess, S>,
715 /// The span of the syntactical component this attribute was applied to
716 pub(crate) target_span: Span,
717 pub(crate) target: rustc_hir::Target,
718
719 /// The second argument of the closure is a [`NodeId`] if `S` is `Early` and a [`HirId`] if `S`
720 /// is `Late` and is the ID of the syntactical component this attribute was applied to.
721 pub(crate) emit_lint: &'p mut dyn FnMut(LintId, Span, AttributeLintKind),
722}
723
724/// Context given to every attribute parser during finalization.
725///
726/// Gives [`AttributeParser`](crate::attributes::AttributeParser)s enough information to create
727/// errors, for example.
728pub(crate) struct FinalizeContext<'p, 'sess, S: Stage> {
729 pub(crate) shared: SharedContext<'p, 'sess, S>,
730
731 /// A list of all attribute on this syntax node.
732 ///
733 /// Useful for compatibility checks with other attributes in [`finalize`](crate::attributes::AttributeParser::finalize)
734 ///
735 /// Usually, you should use normal attribute parsing logic instead,
736 /// especially when making a *denylist* of other attributes.
737 pub(crate) all_attrs: &'p [RefPathParser<'p>],
738}
739
740impl<'p, 'sess: 'p, S: Stage> Deref for FinalizeContext<'p, 'sess, S> {
741 type Target = SharedContext<'p, 'sess, S>;
742
743 fn deref(&self) -> &Self::Target {
744 &self.shared
745 }
746}
747
748impl<'p, 'sess: 'p, S: Stage> DerefMut for FinalizeContext<'p, 'sess, S> {
749 fn deref_mut(&mut self) -> &mut Self::Target {
750 &mut self.shared
751 }
752}
753
754impl<'p, 'sess: 'p, S: Stage> Deref for SharedContext<'p, 'sess, S> {
755 type Target = AttributeParser<'sess, S>;
756
757 fn deref(&self) -> &Self::Target {
758 self.cx
759 }
760}
761
762impl<'p, 'sess: 'p, S: Stage> DerefMut for SharedContext<'p, 'sess, S> {
763 fn deref_mut(&mut self) -> &mut Self::Target {
764 self.cx
765 }
766}
767
768#[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)]
769pub enum OmitDoc {
770 Lower,
771 Skip,
772}
773
774#[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)]
775pub enum ShouldEmit {
776 /// The operations will emit errors, and lints, and errors are fatal.
777 ///
778 /// Only relevant when early parsing, in late parsing equivalent to `ErrorsAndLints`.
779 /// Late parsing is never fatal, and instead tries to emit as many diagnostics as possible.
780 EarlyFatal { also_emit_lints: bool },
781 /// The operation will emit errors and lints.
782 /// This is usually what you need.
783 ErrorsAndLints {
784 /// Whether [`ArgParser`] will attempt to recover from errors.
785 ///
786 /// Whether it is allowed to recover from bad input (like an invalid literal). Setting
787 /// this to `Forbidden` will instead return early, and not raise errors except at the top
788 /// level (in [`ArgParser::from_attr_args`]).
789 recovery: Recovery,
790 },
791 /// The operation will *not* emit errors and lints.
792 ///
793 /// The parser can still call `delay_bug`, so you *must* ensure that this operation will also be
794 /// called with `ShouldEmit::ErrorsAndLints`.
795 Nothing,
796}
797
798impl ShouldEmit {
799 pub(crate) fn emit_err(&self, diag: Diag<'_>) -> ErrorGuaranteed {
800 match self {
801 ShouldEmit::EarlyFatal { .. } if diag.level() == Level::DelayedBug => diag.emit(),
802 ShouldEmit::EarlyFatal { .. } => diag.upgrade_to_fatal().emit(),
803 ShouldEmit::ErrorsAndLints { .. } => diag.emit(),
804 ShouldEmit::Nothing => diag.delay_as_bug(),
805 }
806 }
807}