-
Notifications
You must be signed in to change notification settings - Fork 13.8k
Open
Labels
A-macrosArea: All kinds of macros (custom derive, macro_rules!, proc macros, ..)Area: All kinds of macros (custom derive, macro_rules!, proc macros, ..)A-parallel-compilerArea: parallel compilerArea: parallel compilerA-type-systemArea: Type systemArea: Type systemC-bugCategory: This is a bug.Category: This is a bug.I-ICEIssue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.Relevant to the compiler team, which will review and decide on the PR/issue.
Description
command: rustc -Zthreads=8 c_enum.rs
. This is a bug of the parallel frontend.
I tried this code from the crate c_enum
:
#[macro_export]
macro_rules! __c_enum_decl_variants {
(impl($name:ident, $inner:ty, $default:expr)) => {};
// Match 32 fields
(
impl($name:ident, $inner:ty, $default:expr)
$( #[$attr1:meta] )*
$field1:ident $( = $value1:expr )? ,
$( #[$attr2:meta] )*
$field2:ident $( = $value2:expr )? ,
$( #[$attr3:meta] )*
$field3:ident $( = $value3:expr )? ,
$( #[$attr4:meta] )*
$field4:ident $( = $value4:expr )? ,
$( #[$attr5:meta] )*
$field5:ident $( = $value5:expr )? ,
$( #[$attr6:meta] )*
$field6:ident $( = $value6:expr )? ,
$( #[$attr7:meta] )*
$field7:ident $( = $value7:expr )? ,
$( #[$attr8:meta] )*
$field8:ident $( = $value8:expr )? ,
$( #[$attr9:meta] )*
$field9:ident $( = $value9:expr )? ,
$( #[$attr10:meta] )*
$field10:ident $( = $value10:expr )? ,
$( #[$attr11:meta] )*
$field11:ident $( = $value11:expr )? ,
$( #[$attr12:meta] )*
$field12:ident $( = $value12:expr )? ,
$( #[$attr13:meta] )*
$field13:ident $( = $value13:expr )? ,
$( #[$attr14:meta] )*
$field14:ident $( = $value14:expr )? ,
$( #[$attr15:meta] )*
$field15:ident $( = $value15:expr )? ,
$( #[$attr16:meta] )*
$field16:ident $( = $value16:expr )? ,
$( #[$attr17:meta] )*
$field17:ident $( = $value17:expr )? ,
$( #[$attr18:meta] )*
$field18:ident $( = $value18:expr )? ,
$( #[$attr19:meta] )*
$field19:ident $( = $value19:expr )? ,
$( #[$attr20:meta] )*
$field20:ident $( = $value20:expr )? ,
$( #[$attr21:meta] )*
$field21:ident $( = $value21:expr )? ,
$( #[$attr22:meta] )*
$field22:ident $( = $value22:expr )? ,
$( #[$attr23:meta] )*
$field23:ident $( = $value23:expr )? ,
$( #[$attr24:meta] )*
$field24:ident $( = $value24:expr )? ,
$( #[$attr25:meta] )*
$field25:ident $( = $value25:expr )? ,
$( #[$attr26:meta] )*
$field26:ident $( = $value26:expr )? ,
$( #[$attr27:meta] )*
$field27:ident $( = $value27:expr )? ,
$( #[$attr28:meta] )*
$field28:ident $( = $value28:expr )? ,
$( #[$attr29:meta] )*
$field29:ident $( = $value29:expr )? ,
$( #[$attr30:meta] )*
$field30:ident $( = $value30:expr )? ,
$( #[$attr31:meta] )*
$field31:ident $( = $value31:expr )? ,
$( #[$attr32:meta] )*
$field32:ident $( = $value32:expr )? ,
$(
$( #[$rattr:meta] )*
$frest:ident $( = $frest_val:expr )?
),* $(,)?
) => {
$( #[$attr1] )*
#[allow(non_upper_case_globals)]
pub const $field1: Self = Self($crate::__c_enum_impl!(
impl(first_expr) $( $value1, )? $default));
$( #[$attr2] )*
#[allow(non_upper_case_globals)]
pub const $field2: Self = Self($crate::__c_enum_impl!(
impl(first_expr) $( $value2, )? Self::$field1.0 + 1));
$( #[$attr3] )*
#[allow(non_upper_case_globals)]
pub const $field3: Self = Self($crate::__c_enum_impl!(
impl(first_expr) $( $value3, )? Self::$field2.0 + 1));
$( #[$attr4] )*
#[allow(non_upper_case_globals)]
pub const $field4: Self = Self($crate::__c_enum_impl!(
impl(first_expr) $( $value4, )? Self::$field3.0 + 1));
$( #[$attr5] )*
#[allow(non_upper_case_globals)]
pub const $field5: Self = Self($crate::__c_enum_impl!(
impl(first_expr) $( $value5, )? Self::$field4.0 + 1));
$( #[$attr6] )*
#[allow(non_upper_case_globals)]
pub const $field6: Self = Self($crate::__c_enum_impl!(
impl(first_expr) $( $value6, )? Self::$field5.0 + 1));
$( #[$attr7] )*
#[allow(non_upper_case_globals)]
pub const $field7: Self = Self($crate::__c_enum_impl!(
impl(first_expr) $( $value7, )? Self::$field6.0 + 1));
$( #[$attr8] )*
#[allow(non_upper_case_globals)]
pub const $field8: Self = Self($crate::__c_enum_impl!(
impl(first_expr) $( $value8, )? Self::$field7.0 + 1));
$( #[$attr9] )*
#[allow(non_upper_case_globals)]
pub const $field9: Self = Self($crate::__c_enum_impl!(
impl(first_expr) $( $value9, )? Self::$field8.0 + 1));
$( #[$attr10] )*
#[allow(non_upper_case_globals)]
pub const $field10: Self = Self($crate::__c_enum_impl!(
impl(first_expr) $( $value10, )? Self::$field9.0 + 1));
$( #[$attr11] )*
#[allow(non_upper_case_globals)]
pub const $field11: Self = Self($crate::__c_enum_impl!(
impl(first_expr) $( $value11, )? Self::$field10.0 + 1));
$( #[$attr12] )*
#[allow(non_upper_case_globals)]
pub const $field12: Self = Self($crate::__c_enum_impl!(
impl(first_expr) $( $value12, )? Self::$field11.0 + 1));
$( #[$attr13] )*
#[allow(non_upper_case_globals)]
pub const $field13: Self = Self($crate::__c_enum_impl!(
impl(first_expr) $( $value13, )? Self::$field12.0 + 1));
$( #[$attr14] )*
#[allow(non_upper_case_globals)]
pub const $field14: Self = Self($crate::__c_enum_impl!(
impl(first_expr) $( $value14, )? Self::$field13.0 + 1));
$( #[$attr15] )*
#[allow(non_upper_case_globals)]
pub const $field15: Self = Self($crate::__c_enum_impl!(
impl(first_expr) $( $value15, )? Self::$field14.0 + 1));
$( #[$attr16] )*
#[allow(non_upper_case_globals)]
pub const $field16: Self = Self($crate::__c_enum_impl!(
impl(first_expr) $( $value16, )? Self::$field15.0 + 1));
$( #[$attr17] )*
#[allow(non_upper_case_globals)]
pub const $field17: Self = Self($crate::__c_enum_impl!(
impl(first_expr) $( $value17, )? Self::$field16.0 + 1));
$( #[$attr18] )*
#[allow(non_upper_case_globals)]
pub const $field18: Self = Self($crate::__c_enum_impl!(
impl(first_expr) $( $value18, )? Self::$field17.0 + 1));
$( #[$attr19] )*
#[allow(non_upper_case_globals)]
pub const $field19: Self = Self($crate::__c_enum_impl!(
impl(first_expr) $( $value19, )? Self::$field18.0 + 1));
$( #[$attr20] )*
#[allow(non_upper_case_globals)]
pub const $field20: Self = Self($crate::__c_enum_impl!(
impl(first_expr) $( $value20, )? Self::$field19.0 + 1));
$( #[$attr21] )*
#[allow(non_upper_case_globals)]
pub const $field21: Self = Self($crate::__c_enum_impl!(
impl(first_expr) $( $value21, )? Self::$field20.0 + 1));
$( #[$attr22] )*
#[allow(non_upper_case_globals)]
pub const $field22: Self = Self($crate::__c_enum_impl!(
impl(first_expr) $( $value22, )? Self::$field21.0 + 1));
$( #[$attr23] )*
#[allow(non_upper_case_globals)]
pub const $field23: Self = Self($crate::__c_enum_impl!(
impl(first_expr) $( $value23, )? Self::$field22.0 + 1));
$( #[$attr24] )*
#[allow(non_upper_case_globals)]
pub const $field24: Self = Self($crate::__c_enum_impl!(
impl(first_expr) $( $value24, )? Self::$field23.0 + 1));
$( #[$attr25] )*
#[allow(non_upper_case_globals)]
pub const $field25: Self = Self($crate::__c_enum_impl!(
impl(first_expr) $( $value25, )? Self::$field24.0 + 1));
$( #[$attr26] )*
#[allow(non_upper_case_globals)]
pub const $field26: Self = Self($crate::__c_enum_impl!(
impl(first_expr) $( $value26, )? Self::$field25.0 + 1));
$( #[$attr27] )*
#[allow(non_upper_case_globals)]
pub const $field27: Self = Self($crate::__c_enum_impl!(
impl(first_expr) $( $value27, )? Self::$field26.0 + 1));
$( #[$attr28] )*
#[allow(non_upper_case_globals)]
pub const $field28: Self = Self($crate::__c_enum_impl!(
impl(first_expr) $( $value28, )? Self::$field27.0 + 1));
$( #[$attr29] )*
#[allow(non_upper_case_globals)]
pub const $field29: Self = Self($crate::__c_enum_impl!(
impl(first_expr) $( $value29, )? Self::$field28.0 + 1));
$( #[$attr30] )*
#[allow(non_upper_case_globals)]
pub const $field30: Self = Self($crate::__c_enum_impl!(
impl(first_expr) $( $value30, )? Self::$field29.0 + 1));
$( #[$attr31] )*
#[allow(non_upper_case_globals)]
pub const $field31: Self = Self($crate::__c_enum_impl!(
impl(first_expr) $( $value31, )? Self::$field30.0 + 1));
$( #[$attr32] )*
#[allow(non_upper_case_globals)]
pub const $field32: Self = Self($crate::__c_enum_impl!(
impl(first_expr) $( $value32, )? Self::$field31.0 + 1));
$crate::__c_enum_decl_variants!(
impl($name, $inner, Self::$field32.0 + 1)
$( $( #[$rattr] )* $frest $( = $frest_val )?, )*
);
};
// Base case
(
impl($name:ident, $inner:ty, $default:expr)
$( #[$fattr:meta] )*
$field:ident $( = $fvalue:expr )?
$( ,
$( #[$rattr:meta] )*
$frest:ident $( = $frest_val:expr )?
)*
$(,)?
) => {
$crate::__c_enum_decl_variants!(
impl($name, $inner, Self::$field.0 + 1)
$( $( #[$rattr] )* $frest $( = $frest_val )?, )*
);
}
}
#[macro_export]
macro_rules! c_enum {
{
$( #[$attr:meta] )*
$vis:vis enum $name:ident : $inner:ty {
$(
$( #[ $field_attr:meta ] )*
$field:ident $( = $value:expr )?
),* $(,)?
}
} => {
$crate::__c_enum_no_debug! {
$( #[$attr] )*
$vis enum $name : $inner {
$(
$( #[ $field_attr ] )*
$field $( = $value )?
),*
}
}
};
}
#[macro_export]
macro_rules! __c_enum_no_debug {
{
$( #[$attr:meta] )*
$vis:vis enum $name:ident : $inner:ty {
$(
$( #[ $field_attr:meta ] )*
$field:ident $( = $value:expr )?
),* $(,)?
}
} => {
$( #[$attr] )*
$vis struct $name(pub $inner);
#[allow(non_upper_case_globals)]
impl $name {
$crate::__c_enum_decl_variants!(
impl($name, $inner, 0)
$(
$( #[$field_attr] )*
$field $( = $value )?,
)*
);
}
};
}
#[macro_export]
macro_rules! __c_enum_impl {
(impl(first_expr) $first:expr $(, $rest:expr)*) => {
$first
};
}
c_enum! {
enum Large : u32 {
Variant1,
Variant2,
Variant3,
Variant4,
Variant5,
Variant6,
Variant7,
Variant8,
Variant9,
Variant10,
Variant11,
Variant12,
Variant13,
Variant14,
Variant15,
Variant16,
Variant17,
Variant18,
Variant19,
Variant20,
Variant21,
Variant22,
Variant23,
Variant24,
Variant25,
Variant26,
Variant27,
Variant28,
Variant29,
Variant30,
Variant31,
Variant32,
Variant33,
Variant34,
Variant35,
Variant36,
Variant37,
Variant38,
Variant39,
Variant40,
Variant41,
Variant42,
Variant43,
Variant44,
Variant45,
Variant46,
Variant47,
Variant48,
Variant49,
Variant50,
Variant51,
Variant52,
Variant53,
Variant54,
Variant55,
Variant56,
Variant57,
Variant58,
Variant59,
Variant60,
Variant61,
Variant62,
Variant63,
Variant64,
Variant65,
Variant66,
Variant67,
Variant68,
Variant69,
Variant70,
Variant71,
Variant72,
Variant73,
Variant74,
Variant75,
Variant76,
Variant77,
Variant78,
Variant79,
Variant80,
Variant81,
Variant82,
Variant83,
Variant84,
Variant85,
Variant86,
Variant87,
Variant88,
Variant89,
Variant90,
Variant91,
Variant92,
Variant93,
Variant94,
Variant95,
Variant96,
Variant97,
Variant98,
Variant99,
Variant100,
Variant101,
Variant102,
Variant103,
Variant104,
Variant105,
Variant106,
Variant107,
Variant108,
Variant109,
Variant110,
Variant111,
Variant112,
Variant113,
Variant114,
Variant115,
Variant116,
Variant117,
Variant118,
Variant119,
Variant120,
Variant121,
Variant122,
Variant123,
Variant124,
Variant125,
Variant126,
Variant127,
Variant128,
Variant129,
Variant130,
Variant131,
Variant132,
Variant133,
Variant134,
Variant135,
Variant136,
Variant137,
Variant138,
Variant139,
Variant140,
Variant141,
Variant142,
Variant143,
Variant144,
Variant145,
Variant146,
Variant147,
Variant148,
Variant149,
Variant150,
Variant151,
Variant152,
Variant153,
Variant154,
Variant155,
Variant156,
Variant157,
Variant158,
Variant159,
Variant160,
Variant161,
Variant162,
Variant163,
Variant164,
Variant165,
Variant166,
Variant167,
Variant168,
Variant169,
Variant170,
Variant171,
Variant172,
Variant173,
Variant174,
Variant175,
Variant176,
Variant177,
Variant178,
Variant179,
Variant180,
Variant181,
Variant182,
Variant183,
Variant184,
Variant185,
Variant186,
Variant187,
Variant188,
Variant189,
Variant190,
Variant191,
Variant192,
Variant193,
Variant194,
Variant195,
Variant196,
Variant197,
Variant198,
Variant199,
Variant200,
Variant201,
Variant202,
Variant203,
Variant204,
Variant205,
Variant206,
Variant207,
Variant208,
Variant209,
Variant210,
Variant211,
Variant212,
Variant213,
Variant214,
Variant215,
Variant216,
Variant217,
Variant218,
Variant219,
Variant220,
Variant221,
Variant222,
Variant223,
Variant224,
Variant225,
Variant226,
Variant227,
Variant228,
Variant229,
Variant230,
Variant231,
Variant232,
Variant233,
Variant234,
Variant235,
Variant236,
Variant237,
Variant238,
Variant239,
Variant240,
Variant241,
Variant242,
Variant243,
Variant244,
Variant245,
Variant246,
Variant247,
Variant248,
Variant249,
Variant250,
Variant251,
Variant252,
Variant253,
Variant254,
Variant255,
Variant256,
Variant257,
Variant258,
Variant259,
Variant260,
Variant261,
Variant262,
Variant263,
Variant264,
Variant265,
Variant266,
Variant267,
Variant268,
Variant269,
Variant270,
Variant271,
Variant272,
Variant273,
Variant274,
Variant275,
Variant276,
Variant277,
Variant278,
Variant279,
Variant280,
Variant281,
Variant282,
Variant283,
Variant284,
Variant285,
Variant286,
Variant287,
Variant288,
Variant289,
Variant290,
Variant291,
Variant292,
Variant293,
Variant294,
Variant295,
Variant296,
Variant297,
Variant298,
Variant299,
Variant300,
Variant301,
Variant302,
Variant303,
Variant304,
Variant305,
Variant306,
Variant307,
Variant308,
Variant309,
Variant310,
Variant311,
Variant312,
Variant313,
Variant314,
Variant315,
Variant316,
Variant317,
Variant318,
Variant319,
Variant320,
Variant321,
Variant322,
Variant323,
Variant324,
Variant325,
Variant326,
Variant327,
Variant328,
Variant329,
Variant330,
Variant331,
Variant332,
Variant333,
Variant334,
Variant335,
Variant336,
Variant337,
Variant338,
Variant339,
Variant340,
Variant341,
Variant342,
Variant343,
Variant344,
Variant345,
Variant346,
Variant347,
Variant348,
Variant349,
Variant350,
Variant351,
Variant352,
Variant353,
Variant354,
Variant355,
Variant356,
Variant357,
Variant358,
Variant359,
Variant360,
Variant361,
Variant362,
Variant363,
Variant364,
Variant365,
Variant366,
Variant367,
Variant368,
Variant369,
Variant370,
Variant371,
Variant372,
Variant373,
Variant374,
Variant375,
Variant376,
Variant377,
Variant378,
Variant379,
Variant380,
Variant381,
Variant382,
Variant383,
Variant384,
Variant385,
Variant386,
Variant387,
Variant388,
Variant389,
Variant390,
Variant391,
Variant392,
Variant393,
Variant394,
Variant395,
Variant396,
Variant397,
Variant398,
Variant399,
Variant400,
Variant401,
Variant402,
Variant403,
Variant404,
Variant405,
Variant406,
Variant407,
Variant408,
Variant409,
Variant410,
Variant411,
Variant412,
Variant413,
Variant414,
Variant415,
Variant416,
Variant417,
Variant418,
Variant419,
Variant420,
Variant421,
Variant422,
Variant423,
Variant424,
Variant425,
Variant426,
Variant427,
Variant428,
Variant429,
Variant430,
Variant431,
Variant432,
Variant433,
Variant434,
Variant435,
Variant436,
Variant437,
Variant438,
Variant439,
Variant440,
Variant441,
Variant442,
Variant443,
Variant444,
Variant445,
Variant446,
Variant447,
Variant448,
Variant449,
Variant450,
Variant451,
Variant452,
Variant453,
Variant454,
Variant455,
Variant456,
Variant457,
Variant458,
Variant459,
Variant460,
Variant461,
Variant462,
Variant463,
Variant464,
Variant465,
Variant466,
Variant467,
Variant468,
Variant469,
Variant470,
Variant471,
Variant472,
Variant473,
Variant474,
Variant475,
Variant476,
Variant477,
Variant478,
Variant479,
Variant480,
Variant481,
Variant482,
Variant483,
Variant484,
Variant485,
Variant486,
Variant487,
Variant488,
Variant489,
Variant490,
Variant491,
Variant492,
Variant493,
Variant494,
Variant495,
Variant496,
Variant497,
Variant498,
Variant499,
Variant500,
Variant501,
Variant502,
Variant503,
Variant504,
Variant505,
Variant506,
Variant507,
Variant508,
Variant509,
Variant510,
Variant511,
Variant512,
Variant513,
Variant514,
Variant515,
Variant516,
Variant517,
Variant518,
Variant519,
Variant520,
Variant521,
Variant522,
Variant523,
Variant524,
Variant525,
Variant526,
Variant527,
Variant528,
Variant529,
Variant530,
Variant531,
Variant532,
Variant533,
Variant534,
Variant535,
Variant536,
Variant537,
Variant538,
Variant539,
Variant540,
Variant541,
Variant542,
Variant543,
Variant544,
Variant545,
Variant546,
Variant547,
Variant548,
Variant549,
Variant550,
Variant551,
Variant552,
Variant553,
Variant554,
Variant555,
Variant556,
Variant557,
Variant558,
Variant559,
Variant560,
Variant561,
Variant562,
Variant563,
Variant564,
Variant565,
Variant566,
Variant567,
Variant568,
Variant569,
Variant570,
Variant571,
Variant572,
Variant573,
Variant574,
Variant575,
Variant576,
Variant577,
Variant578,
Variant579,
Variant580,
Variant581,
Variant582,
Variant583,
Variant584,
Variant585,
Variant586,
Variant587,
Variant588,
Variant589,
Variant590,
Variant591,
Variant592,
Variant593,
Variant594,
Variant595,
Variant596,
Variant597,
Variant598,
Variant599,
Variant600,
Variant601,
Variant602,
Variant603,
Variant604,
Variant605,
Variant606,
Variant607,
Variant608,
Variant609,
Variant610,
Variant611,
Variant612,
Variant613,
Variant614,
Variant615,
Variant616,
Variant617,
Variant618,
Variant619,
Variant620,
Variant621,
Variant622,
Variant623,
Variant624,
Variant625,
Variant626,
Variant627,
Variant628,
Variant629,
Variant630,
Variant631,
Variant632,
Variant633,
Variant634,
Variant635,
Variant636,
Variant637,
Variant638,
Variant639,
Variant640,
Variant641,
Variant642,
Variant643,
Variant644,
Variant645,
Variant646,
Variant647,
Variant648,
Variant649,
Variant650,
Variant651,
Variant652,
Variant653,
Variant654,
Variant655,
Variant656,
Variant657,
Variant658,
Variant659,
Variant660,
Variant661,
Variant662,
Variant663,
Variant664,
Variant665,
Variant666,
Variant667,
Variant668,
Variant669,
Variant670,
Variant671,
Variant672,
Variant673,
Variant674,
Variant675,
Variant676,
Variant677,
Variant678,
Variant679,
Variant680,
Variant681,
Variant682,
Variant683,
Variant684,
Variant685,
Variant686,
Variant687,
Variant688,
Variant689,
Variant690,
Variant691,
Variant692,
Variant693,
Variant694,
Variant695,
Variant696,
Variant697,
Variant698,
Variant699,
Variant700,
Variant701,
Variant702,
Variant703,
Variant704,
Variant705,
Variant706,
Variant707,
Variant708,
Variant709,
Variant710,
Variant711,
Variant712,
Variant713,
Variant714,
Variant715,
Variant716,
Variant717,
Variant718,
Variant719,
Variant720,
Variant721,
Variant722,
Variant723,
Variant724,
Variant725,
Variant726,
Variant727,
Variant728,
Variant729,
Variant730,
Variant731,
Variant732,
Variant733,
Variant734,
Variant735,
Variant736,
Variant737,
Variant738,
Variant739,
Variant740,
Variant741,
Variant742,
Variant743,
Variant744,
Variant745,
Variant746,
Variant747,
Variant748,
Variant749,
Variant750,
Variant751,
Variant752,
Variant753,
}
}
fn main() {}
I expected to see this happen: compile successfully
Instead, this happened:
error: queries overflow the depth limit!
--> c_enum.rs:154:45
|
154 | impl(first_expr) $( $value9, )? Self::$field8.0 + 1));
| ^^^^^^^^^^^^^
...
358 | / c_enum! {
359 | | enum Large : u32 {
360 | | Variant1,
361 | | Variant2,
... |
1114 | | }
| |_- in this macro invocation
|
= help: consider increasing the recursion limit by adding a `#![recursion_limit = "256"]` attribute to your crate (`c_enum`)
= note: query depth increased by 130 when simplifying constant for the type system `<impl at c_enum.rs:338:9: 338:19>::Variant552`
= note: this error originates in the macro `$crate::__c_enum_decl_variants` which comes from the expansion of the macro `c_enum` (in Nightly builds, run with -Z macro-backtrace for more info)
error: aborting due to 1 previous error
Meta
rustc --version --verbose
:
rustc 1.92.0-nightly (52618eb33 2025-09-14)
binary: rustc
commit-hash: 52618eb338609df44978b0ca4451ab7941fd1c7a
commit-date: 2025-09-14
host: x86_64-unknown-linux-gnu
release: 1.92.0-nightly
LLVM version: 21.1.1
Backtrace
<backtrace>
Metadata
Metadata
Assignees
Labels
A-macrosArea: All kinds of macros (custom derive, macro_rules!, proc macros, ..)Area: All kinds of macros (custom derive, macro_rules!, proc macros, ..)A-parallel-compilerArea: parallel compilerArea: parallel compilerA-type-systemArea: Type systemArea: Type systemC-bugCategory: This is a bug.Category: This is a bug.I-ICEIssue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.Relevant to the compiler team, which will review and decide on the PR/issue.