@@ -6,6 +6,7 @@ use rustc_ast::ast;
66use rustc_ast:: visit:: Visitor ;
77use rustc_span:: symbol:: { self , sym, Symbol } ;
88use rustc_span:: Span ;
9+ use thin_vec:: ThinVec ;
910use thiserror:: Error ;
1011
1112use crate :: attr:: MetaVisitor ;
@@ -25,7 +26,7 @@ type FileModMap<'ast> = BTreeMap<FileName, Module<'ast>>;
2526#[ derive( Debug , Clone ) ]
2627pub ( crate ) struct Module < ' a > {
2728 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 > > > ,
2930 inner_attr : ast:: AttrVec ,
3031 pub ( crate ) span : Span ,
3132}
@@ -34,7 +35,7 @@ impl<'a> Module<'a> {
3435 pub ( crate ) fn new (
3536 mod_span : Span ,
3637 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 > > > ,
3839 mod_attrs : Cow < ' a , ast:: AttrVec > ,
3940 ) -> Self {
4041 let inner_attr = mod_attrs
@@ -157,7 +158,7 @@ impl<'ast, 'sess, 'c> ModResolver<'ast, 'sess> {
157158 Module :: new (
158159 module_item. item . span ,
159160 Some ( Cow :: Owned ( sub_mod_kind. clone ( ) ) ) ,
160- Cow :: Owned ( vec ! [ ] ) ,
161+ Cow :: Owned ( ThinVec :: new ( ) ) ,
161162 Cow :: Owned ( ast:: AttrVec :: new ( ) ) ,
162163 ) ,
163164 ) ?;
@@ -169,7 +170,7 @@ impl<'ast, 'sess, 'c> ModResolver<'ast, 'sess> {
169170 /// Visit modules defined inside macro calls.
170171 fn visit_mod_outside_ast (
171172 & mut self ,
172- items : Vec < rustc_ast:: ptr:: P < ast:: Item > > ,
173+ items : ThinVec < rustc_ast:: ptr:: P < ast:: Item > > ,
173174 ) -> Result < ( ) , ModuleResolutionError > {
174175 for item in items {
175176 if is_cfg_if ( & item) {
@@ -184,7 +185,7 @@ impl<'ast, 'sess, 'c> ModResolver<'ast, 'sess> {
184185 Module :: new (
185186 span,
186187 Some ( Cow :: Owned ( sub_mod_kind. clone ( ) ) ) ,
187- Cow :: Owned ( vec ! [ ] ) ,
188+ Cow :: Owned ( ThinVec :: new ( ) ) ,
188189 Cow :: Owned ( ast:: AttrVec :: new ( ) ) ,
189190 ) ,
190191 ) ?;
@@ -210,7 +211,7 @@ impl<'ast, 'sess, 'c> ModResolver<'ast, 'sess> {
210211 Module :: new (
211212 span,
212213 Some ( Cow :: Borrowed ( sub_mod_kind) ) ,
213- Cow :: Owned ( vec ! [ ] ) ,
214+ Cow :: Owned ( ThinVec :: new ( ) ) ,
214215 Cow :: Borrowed ( & item. attrs ) ,
215216 ) ,
216217 ) ?;
0 commit comments