@@ -6,6 +6,7 @@ use rustc_ast::ast;
6
6
use rustc_ast:: visit:: Visitor ;
7
7
use rustc_span:: symbol:: { self , sym, Symbol } ;
8
8
use rustc_span:: Span ;
9
+ use thin_vec:: ThinVec ;
9
10
use thiserror:: Error ;
10
11
11
12
use crate :: attr:: MetaVisitor ;
@@ -25,7 +26,7 @@ type FileModMap<'ast> = BTreeMap<FileName, Module<'ast>>;
25
26
#[ derive( Debug , Clone ) ]
26
27
pub ( crate ) struct Module < ' a > {
27
28
ast_mod_kind : Option < Cow < ' a , ast:: ModKind > > ,
28
- pub ( crate ) items : Cow < ' a , Vec < rustc_ast:: ptr:: P < ast:: Item > > > ,
29
+ pub ( crate ) items : Cow < ' a , ThinVec < rustc_ast:: ptr:: P < ast:: Item > > > ,
29
30
inner_attr : ast:: AttrVec ,
30
31
pub ( crate ) span : Span ,
31
32
}
@@ -34,7 +35,7 @@ impl<'a> Module<'a> {
34
35
pub ( crate ) fn new (
35
36
mod_span : Span ,
36
37
ast_mod_kind : Option < Cow < ' a , ast:: ModKind > > ,
37
- mod_items : Cow < ' a , Vec < rustc_ast:: ptr:: P < ast:: Item > > > ,
38
+ mod_items : Cow < ' a , ThinVec < rustc_ast:: ptr:: P < ast:: Item > > > ,
38
39
mod_attrs : Cow < ' a , ast:: AttrVec > ,
39
40
) -> Self {
40
41
let inner_attr = mod_attrs
@@ -157,7 +158,7 @@ impl<'ast, 'sess, 'c> ModResolver<'ast, 'sess> {
157
158
Module :: new (
158
159
module_item. item . span ,
159
160
Some ( Cow :: Owned ( sub_mod_kind. clone ( ) ) ) ,
160
- Cow :: Owned ( vec ! [ ] ) ,
161
+ Cow :: Owned ( ThinVec :: new ( ) ) ,
161
162
Cow :: Owned ( ast:: AttrVec :: new ( ) ) ,
162
163
) ,
163
164
) ?;
@@ -169,7 +170,7 @@ impl<'ast, 'sess, 'c> ModResolver<'ast, 'sess> {
169
170
/// Visit modules defined inside macro calls.
170
171
fn visit_mod_outside_ast (
171
172
& mut self ,
172
- items : Vec < rustc_ast:: ptr:: P < ast:: Item > > ,
173
+ items : ThinVec < rustc_ast:: ptr:: P < ast:: Item > > ,
173
174
) -> Result < ( ) , ModuleResolutionError > {
174
175
for item in items {
175
176
if is_cfg_if ( & item) {
@@ -184,7 +185,7 @@ impl<'ast, 'sess, 'c> ModResolver<'ast, 'sess> {
184
185
Module :: new (
185
186
span,
186
187
Some ( Cow :: Owned ( sub_mod_kind. clone ( ) ) ) ,
187
- Cow :: Owned ( vec ! [ ] ) ,
188
+ Cow :: Owned ( ThinVec :: new ( ) ) ,
188
189
Cow :: Owned ( ast:: AttrVec :: new ( ) ) ,
189
190
) ,
190
191
) ?;
@@ -210,7 +211,7 @@ impl<'ast, 'sess, 'c> ModResolver<'ast, 'sess> {
210
211
Module :: new (
211
212
span,
212
213
Some ( Cow :: Borrowed ( sub_mod_kind) ) ,
213
- Cow :: Owned ( vec ! [ ] ) ,
214
+ Cow :: Owned ( ThinVec :: new ( ) ) ,
214
215
Cow :: Borrowed ( & item. attrs ) ,
215
216
) ,
216
217
) ?;
0 commit comments