@@ -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`).
@@ -1187,7 +1187,7 @@ impl Expr {
1187
1187
pub fn to_bound ( & self ) -> Option < GenericBound > {
1188
1188
match & self . kind {
1189
1189
ExprKind :: Path ( None , path) => Some ( GenericBound :: Trait (
1190
- PolyTraitRef :: new ( Vec :: new ( ) , path. clone ( ) , self . span ) ,
1190
+ PolyTraitRef :: new ( ThinVec :: new ( ) , path. clone ( ) , self . span ) ,
1191
1191
TraitBoundModifier :: None ,
1192
1192
) ) ,
1193
1193
_ => None ,
@@ -1564,7 +1564,7 @@ pub enum ClosureBinder {
1564
1564
/// for<'a, 'b> |_: &'a (), _: &'b ()| { ... }
1565
1565
/// ^^^^^^ -- this
1566
1566
/// ```
1567
- generic_params : P < [ GenericParam ] > ,
1567
+ generic_params : ThinVec < GenericParam > ,
1568
1568
} ,
1569
1569
}
1570
1570
@@ -2025,7 +2025,7 @@ impl Ty {
2025
2025
pub struct BareFnTy {
2026
2026
pub unsafety : Unsafe ,
2027
2027
pub ext : Extern ,
2028
- pub generic_params : Vec < GenericParam > ,
2028
+ pub generic_params : ThinVec < GenericParam > ,
2029
2029
pub decl : P < FnDecl > ,
2030
2030
/// Span of the `fn(...) -> ...` part.
2031
2031
pub decl_span : Span ,
@@ -2611,7 +2611,7 @@ pub struct TraitRef {
2611
2611
#[ derive( Clone , Encodable , Decodable , Debug ) ]
2612
2612
pub struct PolyTraitRef {
2613
2613
/// The `'a` in `for<'a> Foo<&'a T>`.
2614
- pub bound_generic_params : Vec < GenericParam > ,
2614
+ pub bound_generic_params : ThinVec < GenericParam > ,
2615
2615
2616
2616
/// The `Foo<&'a T>` in `<'a> Foo<&'a T>`.
2617
2617
pub trait_ref : TraitRef ,
@@ -2620,7 +2620,7 @@ pub struct PolyTraitRef {
2620
2620
}
2621
2621
2622
2622
impl PolyTraitRef {
2623
- pub fn new ( generic_params : Vec < GenericParam > , path : Path , span : Span ) -> Self {
2623
+ pub fn new ( generic_params : ThinVec < GenericParam > , path : Path , span : Span ) -> Self {
2624
2624
PolyTraitRef {
2625
2625
bound_generic_params : generic_params,
2626
2626
trait_ref : TraitRef { path, ref_id : DUMMY_NODE_ID } ,
@@ -3075,15 +3075,15 @@ mod size_asserts {
3075
3075
static_assert_size ! ( Block , 48 ) ;
3076
3076
static_assert_size ! ( Expr , 104 ) ;
3077
3077
static_assert_size ! ( ExprKind , 72 ) ;
3078
- static_assert_size ! ( Fn , 192 ) ;
3078
+ static_assert_size ! ( Fn , 176 ) ;
3079
3079
static_assert_size ! ( ForeignItem , 96 ) ;
3080
3080
static_assert_size ! ( ForeignItemKind , 24 ) ;
3081
3081
static_assert_size ! ( GenericArg , 24 ) ;
3082
- static_assert_size ! ( GenericBound , 72 ) ;
3083
- static_assert_size ! ( Generics , 72 ) ;
3084
- static_assert_size ! ( Impl , 184 ) ;
3085
- static_assert_size ! ( Item , 184 ) ;
3086
- static_assert_size ! ( ItemKind , 112 ) ;
3082
+ static_assert_size ! ( GenericBound , 56 ) ;
3083
+ static_assert_size ! ( Generics , 56 ) ;
3084
+ static_assert_size ! ( Impl , 168 ) ;
3085
+ static_assert_size ! ( Item , 168 ) ;
3086
+ static_assert_size ! ( ItemKind , 96 ) ;
3087
3087
static_assert_size ! ( Lit , 48 ) ;
3088
3088
static_assert_size ! ( LitKind , 24 ) ;
3089
3089
static_assert_size ! ( Local , 72 ) ;
0 commit comments