Skip to content

error: queries overflow the depth limit! for the parallel frontend #146616

@ywxt

Description

@ywxt

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

No one assigned

    Labels

    A-macrosArea: All kinds of macros (custom derive, macro_rules!, proc macros, ..)A-parallel-compilerArea: parallel compilerA-type-systemArea: Type systemC-bugCategory: This is a bug.I-ICEIssue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions