1
- use crate :: base:: ExtCtxt ;
2
1
use crate :: expand:: { AstFragment , AstFragmentKind } ;
3
2
4
3
use rustc_ast as ast;
@@ -175,17 +174,12 @@ pub fn placeholder(
175
174
}
176
175
}
177
176
178
- pub struct PlaceholderExpander < ' a , ' b > {
177
+ #[ derive( Default ) ]
178
+ pub struct PlaceholderExpander {
179
179
expanded_fragments : FxHashMap < ast:: NodeId , AstFragment > ,
180
- cx : & ' a mut ExtCtxt < ' b > ,
181
- monotonic : bool ,
182
180
}
183
181
184
- impl < ' a , ' b > PlaceholderExpander < ' a , ' b > {
185
- pub fn new ( cx : & ' a mut ExtCtxt < ' b > , monotonic : bool ) -> Self {
186
- PlaceholderExpander { cx, expanded_fragments : FxHashMap :: default ( ) , monotonic }
187
- }
188
-
182
+ impl PlaceholderExpander {
189
183
pub fn add ( & mut self , id : ast:: NodeId , mut fragment : AstFragment ) {
190
184
fragment. mut_visit_with ( self ) ;
191
185
self . expanded_fragments . insert ( id, fragment) ;
@@ -196,7 +190,7 @@ impl<'a, 'b> PlaceholderExpander<'a, 'b> {
196
190
}
197
191
}
198
192
199
- impl < ' a , ' b > MutVisitor for PlaceholderExpander < ' a , ' b > {
193
+ impl MutVisitor for PlaceholderExpander {
200
194
fn flat_map_arm ( & mut self , arm : ast:: Arm ) -> SmallVec < [ ast:: Arm ; 1 ] > {
201
195
if arm. is_placeholder {
202
196
self . remove ( arm. id ) . make_arms ( )
@@ -360,15 +354,4 @@ impl<'a, 'b> MutVisitor for PlaceholderExpander<'a, 'b> {
360
354
_ => noop_visit_ty ( ty, self ) ,
361
355
}
362
356
}
363
-
364
- fn visit_block ( & mut self , block : & mut P < ast:: Block > ) {
365
- noop_visit_block ( block, self ) ;
366
-
367
- for stmt in block. stmts . iter_mut ( ) {
368
- if self . monotonic {
369
- assert_eq ! ( stmt. id, ast:: DUMMY_NODE_ID ) ;
370
- stmt. id = self . cx . resolver . next_node_id ( ) ;
371
- }
372
- }
373
- }
374
357
}
0 commit comments