@@ -23,6 +23,7 @@ use rustc_data_structures::sync;
23
23
use rustc_macros:: { Decodable , Encodable , HashStable_Generic } ;
24
24
use rustc_serialize:: { Decodable , Encodable } ;
25
25
use rustc_span:: { DUMMY_SP , Span , SpanDecoder , SpanEncoder , Symbol , sym} ;
26
+ use thin_vec:: ThinVec ;
26
27
27
28
use crate :: ast:: AttrStyle ;
28
29
use crate :: ast_traits:: { HasAttrs , HasTokens } ;
@@ -122,7 +123,7 @@ impl LazyAttrTokenStream {
122
123
cursor_snapshot : TokenCursor ,
123
124
num_calls : u32 ,
124
125
break_last_token : u32 ,
125
- node_replacements : Box < [ NodeReplacement ] > ,
126
+ node_replacements : ThinVec < NodeReplacement > ,
126
127
) -> LazyAttrTokenStream {
127
128
LazyAttrTokenStream ( Arc :: new ( LazyAttrTokenStreamInner :: Pending {
128
129
start_token,
@@ -219,7 +220,8 @@ pub struct LazyAttrTokenStreamImpl {
219
220
pub cursor_snapshot : TokenCursor ,
220
221
pub num_calls : u32 ,
221
222
pub break_last_token : u32 ,
222
- pub node_replacements : Box < [ NodeReplacement ] > ,
223
+ /// This vec is almost alway empty.
224
+ pub node_replacements : ThinVec < NodeReplacement > ,
223
225
}
224
226
225
227
enum LazyAttrTokenStreamInner {
@@ -242,7 +244,7 @@ enum LazyAttrTokenStreamInner {
242
244
cursor_snapshot : TokenCursor ,
243
245
num_calls : u32 ,
244
246
break_last_token : u32 ,
245
- node_replacements : Box < [ NodeReplacement ] > ,
247
+ node_replacements : ThinVec < NodeReplacement > ,
246
248
} ,
247
249
}
248
250
@@ -1043,7 +1045,7 @@ mod size_asserts {
1043
1045
static_assert_size ! ( AttrTokenStream , 8 ) ;
1044
1046
static_assert_size ! ( AttrTokenTree , 32 ) ;
1045
1047
static_assert_size ! ( LazyAttrTokenStream , 8 ) ;
1046
- static_assert_size ! ( LazyAttrTokenStreamInner , 96 ) ;
1048
+ static_assert_size ! ( LazyAttrTokenStreamInner , 88 ) ;
1047
1049
static_assert_size ! ( Option <LazyAttrTokenStream >, 8 ) ; // must be small, used in many AST nodes
1048
1050
static_assert_size ! ( TokenStream , 8 ) ;
1049
1051
static_assert_size ! ( TokenTree , 32 ) ;
0 commit comments