@@ -300,9 +300,6 @@ impl<'b> Resolver<'b> {
300
300
}
301
301
ItemKind :: Mac ( _) => panic ! ( "unexpanded macro in resolve!" ) ,
302
302
}
303
-
304
- visit:: walk_item ( & mut BuildReducedGraphVisitor { resolver : self } , item) ;
305
- self . current_module = parent;
306
303
}
307
304
308
305
// Constructs the reduced graph for one variant. Variants exist in the
@@ -356,9 +353,6 @@ impl<'b> Resolver<'b> {
356
353
self . module_map . insert ( block_id, new_module) ;
357
354
self . current_module = new_module; // Descend into the block.
358
355
}
359
-
360
- visit:: walk_block ( & mut BuildReducedGraphVisitor { resolver : self } , block) ;
361
- self . current_module = parent;
362
356
}
363
357
364
358
/// Builds the reduced graph for a single item in an external crate.
@@ -486,15 +480,21 @@ struct BuildReducedGraphVisitor<'a, 'b: 'a> {
486
480
487
481
impl < ' a , ' b > Visitor for BuildReducedGraphVisitor < ' a , ' b > {
488
482
fn visit_item ( & mut self , item : & Item ) {
483
+ let parent = self . resolver . current_module ;
489
484
self . resolver . build_reduced_graph_for_item ( item) ;
485
+ visit:: walk_item ( self , item) ;
486
+ self . resolver . current_module = parent;
490
487
}
491
488
492
489
fn visit_foreign_item ( & mut self , foreign_item : & ForeignItem ) {
493
490
self . resolver . build_reduced_graph_for_foreign_item ( foreign_item) ;
494
491
}
495
492
496
493
fn visit_block ( & mut self , block : & Block ) {
494
+ let parent = self . resolver . current_module ;
497
495
self . resolver . build_reduced_graph_for_block ( block) ;
496
+ visit:: walk_block ( self , block) ;
497
+ self . resolver . current_module = parent;
498
498
}
499
499
500
500
fn visit_trait_item ( & mut self , item : & TraitItem ) {
0 commit comments