@@ -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`).
@@ -1187,7 +1187,7 @@ impl Expr {
11871187 pub fn to_bound ( & self ) -> Option < GenericBound > {
11881188 match & self . kind {
11891189 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 ) ,
11911191 TraitBoundModifier :: None ,
11921192 ) ) ,
11931193 _ => None ,
@@ -1564,7 +1564,7 @@ pub enum ClosureBinder {
15641564 /// for<'a, 'b> |_: &'a (), _: &'b ()| { ... }
15651565 /// ^^^^^^ -- this
15661566 /// ```
1567- generic_params : P < [ GenericParam ] > ,
1567+ generic_params : ThinVec < GenericParam > ,
15681568 } ,
15691569}
15701570
@@ -2025,7 +2025,7 @@ impl Ty {
20252025pub struct BareFnTy {
20262026 pub unsafety : Unsafe ,
20272027 pub ext : Extern ,
2028- pub generic_params : Vec < GenericParam > ,
2028+ pub generic_params : ThinVec < GenericParam > ,
20292029 pub decl : P < FnDecl > ,
20302030 /// Span of the `fn(...) -> ...` part.
20312031 pub decl_span : Span ,
@@ -2611,7 +2611,7 @@ pub struct TraitRef {
26112611#[ derive( Clone , Encodable , Decodable , Debug ) ]
26122612pub struct PolyTraitRef {
26132613 /// The `'a` in `for<'a> Foo<&'a T>`.
2614- pub bound_generic_params : Vec < GenericParam > ,
2614+ pub bound_generic_params : ThinVec < GenericParam > ,
26152615
26162616 /// The `Foo<&'a T>` in `<'a> Foo<&'a T>`.
26172617 pub trait_ref : TraitRef ,
@@ -2620,7 +2620,7 @@ pub struct PolyTraitRef {
26202620}
26212621
26222622impl 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 {
26242624 PolyTraitRef {
26252625 bound_generic_params : generic_params,
26262626 trait_ref : TraitRef { path, ref_id : DUMMY_NODE_ID } ,
@@ -3075,15 +3075,15 @@ mod size_asserts {
30753075 static_assert_size ! ( Block , 48 ) ;
30763076 static_assert_size ! ( Expr , 104 ) ;
30773077 static_assert_size ! ( ExprKind , 72 ) ;
3078- static_assert_size ! ( Fn , 192 ) ;
3078+ static_assert_size ! ( Fn , 176 ) ;
30793079 static_assert_size ! ( ForeignItem , 96 ) ;
30803080 static_assert_size ! ( ForeignItemKind , 24 ) ;
30813081 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 ) ;
30873087 static_assert_size ! ( Lit , 48 ) ;
30883088 static_assert_size ! ( LitKind , 24 ) ;
30893089 static_assert_size ! ( Local , 72 ) ;
0 commit comments