@@ -384,15 +384,15 @@ impl GenericParam {
384384/// a function, enum, trait, etc.
385385#[ derive( Clone , Encodable , Decodable , Debug ) ]
386386pub struct Generics {
387- pub params : Vec < GenericParam > ,
387+ pub params : ThinVec < GenericParam > ,
388388 pub where_clause : WhereClause ,
389389 pub span : Span ,
390390}
391391
392392impl Default for Generics {
393393 /// Creates an instance of `Generics`.
394394 fn default ( ) -> Generics {
395- Generics { params : Vec :: new ( ) , where_clause : Default :: default ( ) , span : DUMMY_SP }
395+ Generics { params : ThinVec :: new ( ) , where_clause : Default :: default ( ) , span : DUMMY_SP }
396396 }
397397}
398398
@@ -441,7 +441,7 @@ impl WherePredicate {
441441pub struct WhereBoundPredicate {
442442 pub span : Span ,
443443 /// Any generics from a `for` binding.
444- pub bound_generic_params : Vec < GenericParam > ,
444+ pub bound_generic_params : ThinVec < GenericParam > ,
445445 /// The type being bounded.
446446 pub bounded_ty : P < Ty > ,
447447 /// Trait and lifetime bounds (`Clone + Send + 'static`).
@@ -1169,7 +1169,7 @@ impl Expr {
11691169 pub fn to_bound ( & self ) -> Option < GenericBound > {
11701170 match & self . kind {
11711171 ExprKind :: Path ( None , path) => Some ( GenericBound :: Trait (
1172- PolyTraitRef :: new ( Vec :: new ( ) , path. clone ( ) , self . span ) ,
1172+ PolyTraitRef :: new ( ThinVec :: new ( ) , path. clone ( ) , self . span ) ,
11731173 TraitBoundModifier :: None ,
11741174 ) ) ,
11751175 _ => None ,
@@ -1574,7 +1574,7 @@ pub enum ClosureBinder {
15741574 /// for<'a, 'b> |_: &'a (), _: &'b ()| { ... }
15751575 /// ^^^^^^ -- this
15761576 /// ```
1577- generic_params : P < [ GenericParam ] > ,
1577+ generic_params : ThinVec < GenericParam > ,
15781578 } ,
15791579}
15801580
@@ -2056,7 +2056,7 @@ impl Ty {
20562056pub struct BareFnTy {
20572057 pub unsafety : Unsafe ,
20582058 pub ext : Extern ,
2059- pub generic_params : Vec < GenericParam > ,
2059+ pub generic_params : ThinVec < GenericParam > ,
20602060 pub decl : P < FnDecl > ,
20612061 /// Span of the `fn(...) -> ...` part.
20622062 pub decl_span : Span ,
@@ -2636,7 +2636,7 @@ pub struct TraitRef {
26362636#[ derive( Clone , Encodable , Decodable , Debug ) ]
26372637pub struct PolyTraitRef {
26382638 /// The `'a` in `for<'a> Foo<&'a T>`.
2639- pub bound_generic_params : Vec < GenericParam > ,
2639+ pub bound_generic_params : ThinVec < GenericParam > ,
26402640
26412641 /// The `Foo<&'a T>` in `<'a> Foo<&'a T>`.
26422642 pub trait_ref : TraitRef ,
@@ -2645,7 +2645,7 @@ pub struct PolyTraitRef {
26452645}
26462646
26472647impl PolyTraitRef {
2648- pub fn new ( generic_params : Vec < GenericParam > , path : Path , span : Span ) -> Self {
2648+ pub fn new ( generic_params : ThinVec < GenericParam > , path : Path , span : Span ) -> Self {
26492649 PolyTraitRef {
26502650 bound_generic_params : generic_params,
26512651 trait_ref : TraitRef { path, ref_id : DUMMY_NODE_ID } ,
@@ -3115,15 +3115,15 @@ mod size_asserts {
31153115 static_assert_size ! ( Block , 48 ) ;
31163116 static_assert_size ! ( Expr , 72 ) ;
31173117 static_assert_size ! ( ExprKind , 40 ) ;
3118- static_assert_size ! ( Fn , 184 ) ;
3118+ static_assert_size ! ( Fn , 168 ) ;
31193119 static_assert_size ! ( ForeignItem , 96 ) ;
31203120 static_assert_size ! ( ForeignItemKind , 24 ) ;
31213121 static_assert_size ! ( GenericArg , 24 ) ;
3122- static_assert_size ! ( GenericBound , 72 ) ;
3123- static_assert_size ! ( Generics , 72 ) ;
3124- static_assert_size ! ( Impl , 184 ) ;
3125- static_assert_size ! ( Item , 184 ) ;
3126- static_assert_size ! ( ItemKind , 112 ) ;
3122+ static_assert_size ! ( GenericBound , 56 ) ;
3123+ static_assert_size ! ( Generics , 56 ) ;
3124+ static_assert_size ! ( Impl , 168 ) ;
3125+ static_assert_size ! ( Item , 168 ) ;
3126+ static_assert_size ! ( ItemKind , 96 ) ;
31273127 static_assert_size ! ( LitKind , 24 ) ;
31283128 static_assert_size ! ( Local , 72 ) ;
31293129 static_assert_size ! ( MetaItemLit , 40 ) ;
0 commit comments