Skip to content

Commit 07a2eb1

Browse files
committed
Box the Generics in ItemKind::{Enum,Struct,Union,TraitAlias}.
1 parent 694dbc8 commit 07a2eb1

File tree

5 files changed

+21
-21
lines changed

5 files changed

+21
-21
lines changed

compiler/rustc_ast/src/ast.rs

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2849,23 +2849,23 @@ pub enum ItemKind {
28492849
/// An enum definition (`enum`).
28502850
///
28512851
/// E.g., `enum Foo<A, B> { C<A>, D<B> }`.
2852-
Enum(EnumDef, Generics),
2852+
Enum(EnumDef, Box<Generics>),
28532853
/// A struct definition (`struct`).
28542854
///
28552855
/// E.g., `struct Foo<A> { x: A }`.
2856-
Struct(VariantData, Generics),
2856+
Struct(VariantData, Box<Generics>),
28572857
/// A union definition (`union`).
28582858
///
28592859
/// E.g., `union Foo<A, B> { x: A, y: B }`.
2860-
Union(VariantData, Generics),
2860+
Union(VariantData, Box<Generics>),
28612861
/// A trait declaration (`trait`).
28622862
///
28632863
/// E.g., `trait Foo { .. }`, `trait Foo<T> { .. }` or `auto trait Foo {}`.
28642864
Trait(Box<Trait>),
28652865
/// Trait alias
28662866
///
28672867
/// E.g., `trait Foo = Bar + Quux;`.
2868-
TraitAlias(Generics, GenericBounds),
2868+
TraitAlias(Box<Generics>, GenericBounds),
28692869
/// An implementation.
28702870
///
28712871
/// E.g., `impl<A> Foo<A> { .. }` or `impl<A> Trait for Foo<A> { .. }`.
@@ -2915,11 +2915,11 @@ impl ItemKind {
29152915
match self {
29162916
Self::Fn(box Fn { generics, .. })
29172917
| Self::TyAlias(box TyAlias { generics, .. })
2918-
| Self::Enum(_, generics)
2919-
| Self::Struct(_, generics)
2920-
| Self::Union(_, generics)
2918+
| Self::Enum(_, box generics)
2919+
| Self::Struct(_, box generics)
2920+
| Self::Union(_, box generics)
29212921
| Self::Trait(box Trait { generics, .. })
2922-
| Self::TraitAlias(generics, _)
2922+
| Self::TraitAlias(box generics, _)
29232923
| Self::Impl(box Impl { generics, .. }) => Some(generics),
29242924
_ => None,
29252925
}
@@ -3043,8 +3043,8 @@ mod size_asserts {
30433043
static_assert_size!(GenericBound, 88);
30443044
static_assert_size!(Generics, 72);
30453045
static_assert_size!(Impl, 200);
3046-
static_assert_size!(Item, 200);
3047-
static_assert_size!(ItemKind, 112);
3046+
static_assert_size!(Item, 176);
3047+
static_assert_size!(ItemKind, 88);
30483048
static_assert_size!(Lit, 48);
30493049
static_assert_size!(Pat, 120);
30503050
static_assert_size!(Path, 40);

compiler/rustc_builtin_macros/src/deriving/clone.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,8 @@ pub fn expand_deriving_clone(
3333
let is_simple;
3434
match *item {
3535
Annotatable::Item(ref annitem) => match annitem.kind {
36-
ItemKind::Struct(_, Generics { ref params, .. })
37-
| ItemKind::Enum(_, Generics { ref params, .. }) => {
36+
ItemKind::Struct(_, box Generics { ref params, .. })
37+
| ItemKind::Enum(_, box Generics { ref params, .. }) => {
3838
let container_id = cx.current_expansion.id.expn_data().parent.expect_local();
3939
let has_derive_copy = cx.resolver.has_derive_copy(container_id);
4040
if has_derive_copy

compiler/rustc_builtin_macros/src/deriving/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -184,7 +184,7 @@ fn inject_impl_of_structural_trait(
184184
polarity: ast::ImplPolarity::Positive,
185185
defaultness: ast::Defaultness::Final,
186186
constness: ast::Const::No,
187-
generics,
187+
generics: *generics,
188188
of_trait: Some(trait_ref),
189189
self_ty: self_type,
190190
items: Vec::new(),

compiler/rustc_parse/src/parser/item.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -782,7 +782,7 @@ impl<'a> Parser<'a> {
782782

783783
self.sess.gated_spans.gate(sym::trait_alias, whole_span);
784784

785-
Ok((ident, ItemKind::TraitAlias(generics, bounds)))
785+
Ok((ident, ItemKind::TraitAlias(Box::new(generics), bounds)))
786786
} else {
787787
// It's a normal trait.
788788
generics.where_clause = self.parse_where_clause()?;
@@ -1258,7 +1258,7 @@ impl<'a> Parser<'a> {
12581258
})?;
12591259

12601260
let enum_definition = EnumDef { variants: variants.into_iter().flatten().collect() };
1261-
Ok((id, ItemKind::Enum(enum_definition, generics)))
1261+
Ok((id, ItemKind::Enum(enum_definition, Box::new(generics))))
12621262
}
12631263

12641264
fn parse_enum_variant(&mut self) -> PResult<'a, Option<Variant>> {
@@ -1359,7 +1359,7 @@ impl<'a> Parser<'a> {
13591359
return Err(err);
13601360
};
13611361

1362-
Ok((class_name, ItemKind::Struct(vdata, generics)))
1362+
Ok((class_name, ItemKind::Struct(vdata, Box::new(generics))))
13631363
}
13641364

13651365
/// Parses `union Foo { ... }`.
@@ -1385,7 +1385,7 @@ impl<'a> Parser<'a> {
13851385
return Err(err);
13861386
};
13871387

1388-
Ok((class_name, ItemKind::Union(vdata, generics)))
1388+
Ok((class_name, ItemKind::Union(vdata, Box::new(generics))))
13891389
}
13901390

13911391
fn parse_record_struct_body(

compiler/rustc_resolve/src/late.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3943,12 +3943,12 @@ impl<'ast> Visitor<'ast> for LifetimeCountVisitor<'_, '_> {
39433943
match &item.kind {
39443944
ItemKind::TyAlias(box TyAlias { ref generics, .. })
39453945
| ItemKind::Fn(box Fn { ref generics, .. })
3946-
| ItemKind::Enum(_, ref generics)
3947-
| ItemKind::Struct(_, ref generics)
3948-
| ItemKind::Union(_, ref generics)
3946+
| ItemKind::Enum(_, box ref generics)
3947+
| ItemKind::Struct(_, box ref generics)
3948+
| ItemKind::Union(_, box ref generics)
39493949
| ItemKind::Impl(box Impl { ref generics, .. })
39503950
| ItemKind::Trait(box Trait { ref generics, .. })
3951-
| ItemKind::TraitAlias(ref generics, _) => {
3951+
| ItemKind::TraitAlias(box ref generics, _) => {
39523952
let def_id = self.r.local_def_id(item.id);
39533953
let count = generics
39543954
.params

0 commit comments

Comments
 (0)