@@ -414,7 +414,7 @@ impl GenericParam {
414
414
/// a function, enum, trait, etc.
415
415
#[ derive( Clone , Encodable , Decodable , Debug ) ]
416
416
pub struct Generics {
417
- pub params : Vec < GenericParam > ,
417
+ pub params : ThinVec < GenericParam > ,
418
418
pub where_clause : WhereClause ,
419
419
pub span : Span ,
420
420
}
@@ -423,7 +423,7 @@ impl Default for Generics {
423
423
/// Creates an instance of `Generics`.
424
424
fn default ( ) -> Generics {
425
425
Generics {
426
- params : Vec :: new ( ) ,
426
+ params : ThinVec :: new ( ) ,
427
427
where_clause : WhereClause {
428
428
has_where_token : false ,
429
429
predicates : Vec :: new ( ) ,
@@ -473,7 +473,7 @@ impl WherePredicate {
473
473
pub struct WhereBoundPredicate {
474
474
pub span : Span ,
475
475
/// Any generics from a `for` binding.
476
- pub bound_generic_params : Vec < GenericParam > ,
476
+ pub bound_generic_params : ThinVec < GenericParam > ,
477
477
/// The type being bounded.
478
478
pub bounded_ty : P < Ty > ,
479
479
/// Trait and lifetime bounds (`Clone + Send + 'static`).
@@ -1154,7 +1154,7 @@ impl Expr {
1154
1154
pub fn to_bound ( & self ) -> Option < GenericBound > {
1155
1155
match & self . kind {
1156
1156
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 ) ,
1158
1158
TraitBoundModifier :: None ,
1159
1159
) ) ,
1160
1160
_ => None ,
@@ -1531,7 +1531,7 @@ pub enum ClosureBinder {
1531
1531
/// for<'a, 'b> |_: &'a (), _: &'b ()| { ... }
1532
1532
/// ^^^^^^ -- this
1533
1533
/// ```
1534
- generic_params : P < [ GenericParam ] > ,
1534
+ generic_params : ThinVec < GenericParam > ,
1535
1535
} ,
1536
1536
}
1537
1537
@@ -1992,7 +1992,7 @@ impl Ty {
1992
1992
pub struct BareFnTy {
1993
1993
pub unsafety : Unsafe ,
1994
1994
pub ext : Extern ,
1995
- pub generic_params : Vec < GenericParam > ,
1995
+ pub generic_params : ThinVec < GenericParam > ,
1996
1996
pub decl : P < FnDecl > ,
1997
1997
/// Span of the `fn(...) -> ...` part.
1998
1998
pub decl_span : Span ,
@@ -2578,7 +2578,7 @@ pub struct TraitRef {
2578
2578
#[ derive( Clone , Encodable , Decodable , Debug ) ]
2579
2579
pub struct PolyTraitRef {
2580
2580
/// The `'a` in `for<'a> Foo<&'a T>`.
2581
- pub bound_generic_params : Vec < GenericParam > ,
2581
+ pub bound_generic_params : ThinVec < GenericParam > ,
2582
2582
2583
2583
/// The `Foo<&'a T>` in `<'a> Foo<&'a T>`.
2584
2584
pub trait_ref : TraitRef ,
@@ -2587,7 +2587,7 @@ pub struct PolyTraitRef {
2587
2587
}
2588
2588
2589
2589
impl 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 {
2591
2591
PolyTraitRef {
2592
2592
bound_generic_params : generic_params,
2593
2593
trait_ref : TraitRef { path, ref_id : DUMMY_NODE_ID } ,
@@ -3042,14 +3042,14 @@ mod size_asserts {
3042
3042
static_assert_size ! ( Block , 48 ) ;
3043
3043
static_assert_size ! ( Expr , 104 ) ;
3044
3044
static_assert_size ! ( ExprKind , 72 ) ;
3045
- static_assert_size ! ( Fn , 192 ) ;
3045
+ static_assert_size ! ( Fn , 176 ) ;
3046
3046
static_assert_size ! ( ForeignItem , 96 ) ;
3047
3047
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 ) ;
3053
3053
static_assert_size ! ( Lit , 48 ) ;
3054
3054
static_assert_size ! ( LitKind , 24 ) ;
3055
3055
static_assert_size ! ( Pat , 104 ) ;
0 commit comments