@@ -414,7 +414,7 @@ impl GenericParam {
414414/// a function, enum, trait, etc.
415415#[ derive( Clone , Encodable , Decodable , Debug ) ]
416416pub struct Generics {
417- pub params : Vec < GenericParam > ,
417+ pub params : ThinVec < GenericParam > ,
418418 pub where_clause : WhereClause ,
419419 pub span : Span ,
420420}
@@ -423,7 +423,7 @@ impl Default for Generics {
423423 /// Creates an instance of `Generics`.
424424 fn default ( ) -> Generics {
425425 Generics {
426- params : Vec :: new ( ) ,
426+ params : ThinVec :: new ( ) ,
427427 where_clause : WhereClause {
428428 has_where_token : false ,
429429 predicates : Vec :: new ( ) ,
@@ -473,7 +473,7 @@ impl WherePredicate {
473473pub struct WhereBoundPredicate {
474474 pub span : Span ,
475475 /// Any generics from a `for` binding.
476- pub bound_generic_params : Vec < GenericParam > ,
476+ pub bound_generic_params : ThinVec < GenericParam > ,
477477 /// The type being bounded.
478478 pub bounded_ty : P < Ty > ,
479479 /// Trait and lifetime bounds (`Clone + Send + 'static`).
@@ -1154,7 +1154,7 @@ impl Expr {
11541154 pub fn to_bound ( & self ) -> Option < GenericBound > {
11551155 match & self . kind {
11561156 ExprKind :: Path ( None , path) => Some ( GenericBound :: Trait (
1157- PolyTraitRef :: new ( Vec :: new ( ) , path. clone ( ) , self . span ) ,
1157+ PolyTraitRef :: new ( ThinVec :: new ( ) , path. clone ( ) , self . span ) ,
11581158 TraitBoundModifier :: None ,
11591159 ) ) ,
11601160 _ => None ,
@@ -1531,7 +1531,7 @@ pub enum ClosureBinder {
15311531 /// for<'a, 'b> |_: &'a (), _: &'b ()| { ... }
15321532 /// ^^^^^^ -- this
15331533 /// ```
1534- generic_params : P < [ GenericParam ] > ,
1534+ generic_params : ThinVec < GenericParam > ,
15351535 } ,
15361536}
15371537
@@ -1992,7 +1992,7 @@ impl Ty {
19921992pub struct BareFnTy {
19931993 pub unsafety : Unsafe ,
19941994 pub ext : Extern ,
1995- pub generic_params : Vec < GenericParam > ,
1995+ pub generic_params : ThinVec < GenericParam > ,
19961996 pub decl : P < FnDecl > ,
19971997 /// Span of the `fn(...) -> ...` part.
19981998 pub decl_span : Span ,
@@ -2578,7 +2578,7 @@ pub struct TraitRef {
25782578#[ derive( Clone , Encodable , Decodable , Debug ) ]
25792579pub struct PolyTraitRef {
25802580 /// The `'a` in `for<'a> Foo<&'a T>`.
2581- pub bound_generic_params : Vec < GenericParam > ,
2581+ pub bound_generic_params : ThinVec < GenericParam > ,
25822582
25832583 /// The `Foo<&'a T>` in `<'a> Foo<&'a T>`.
25842584 pub trait_ref : TraitRef ,
@@ -2587,7 +2587,7 @@ pub struct PolyTraitRef {
25872587}
25882588
25892589impl PolyTraitRef {
2590- pub fn new ( generic_params : Vec < GenericParam > , path : Path , span : Span ) -> Self {
2590+ pub fn new ( generic_params : ThinVec < GenericParam > , path : Path , span : Span ) -> Self {
25912591 PolyTraitRef {
25922592 bound_generic_params : generic_params,
25932593 trait_ref : TraitRef { path, ref_id : DUMMY_NODE_ID } ,
@@ -3042,14 +3042,14 @@ mod size_asserts {
30423042 static_assert_size ! ( Block , 48 ) ;
30433043 static_assert_size ! ( Expr , 104 ) ;
30443044 static_assert_size ! ( ExprKind , 72 ) ;
3045- static_assert_size ! ( Fn , 192 ) ;
3045+ static_assert_size ! ( Fn , 176 ) ;
30463046 static_assert_size ! ( ForeignItem , 96 ) ;
30473047 static_assert_size ! ( ForeignItemKind , 24 ) ;
3048- static_assert_size ! ( GenericBound , 72 ) ;
3049- static_assert_size ! ( Generics , 72 ) ;
3050- static_assert_size ! ( Impl , 184 ) ;
3051- static_assert_size ! ( Item , 184 ) ;
3052- static_assert_size ! ( ItemKind , 112 ) ;
3048+ static_assert_size ! ( GenericBound , 56 ) ;
3049+ static_assert_size ! ( Generics , 56 ) ;
3050+ static_assert_size ! ( Impl , 168 ) ;
3051+ static_assert_size ! ( Item , 168 ) ;
3052+ static_assert_size ! ( ItemKind , 96 ) ;
30533053 static_assert_size ! ( Lit , 48 ) ;
30543054 static_assert_size ! ( LitKind , 24 ) ;
30553055 static_assert_size ! ( Pat , 104 ) ;
0 commit comments