@@ -2697,6 +2697,9 @@ pub struct StructUnionKind(pub VariantData, pub Generics);
26972697#[ derive( Clone , Encodable , Decodable , Debug ) ]
26982698pub struct EnumKind ( pub EnumDef , pub Generics ) ;
26992699
2700+ #[ derive( Clone , Encodable , Decodable , Debug ) ]
2701+ pub struct TraitAliasKind ( pub Generics , pub GenericBounds ) ;
2702+
27002703#[ derive( Clone , Encodable , Decodable , Debug ) ]
27012704pub enum ItemKind {
27022705 /// An `extern crate` item, with the optional *original* crate name if the crate was renamed.
@@ -2752,7 +2755,7 @@ pub enum ItemKind {
27522755 /// Trait alias
27532756 ///
27542757 /// E.g., `trait Foo = Bar + Quux;`.
2755- TraitAlias ( Generics , GenericBounds ) ,
2758+ TraitAlias ( Box < TraitAliasKind > ) ,
27562759 /// An implementation.
27572760 ///
27582761 /// E.g., `impl<A> Foo<A> { .. }` or `impl<A> Trait for Foo<A> { .. }`.
@@ -2767,7 +2770,7 @@ pub enum ItemKind {
27672770}
27682771
27692772#[ cfg( target_arch = "x86_64" ) ]
2770- rustc_data_structures:: static_assert_size!( ItemKind , 104 ) ;
2773+ rustc_data_structures:: static_assert_size!( ItemKind , 72 ) ;
27712774
27722775impl ItemKind {
27732776 pub fn article ( & self ) -> & str {
@@ -2809,7 +2812,7 @@ impl ItemKind {
28092812 | Self :: Struct ( box StructUnionKind ( _, generics) )
28102813 | Self :: Union ( box StructUnionKind ( _, generics) )
28112814 | Self :: Trait ( box TraitKind ( _, _, generics, ..) )
2812- | Self :: TraitAlias ( generics, _)
2815+ | Self :: TraitAlias ( box TraitAliasKind ( generics, _) )
28132816 | Self :: Impl ( box ImplKind { generics, .. } ) => Some ( generics) ,
28142817 _ => None ,
28152818 }
0 commit comments