@@ -300,9 +300,6 @@ impl<'b> Resolver<'b> {
300300 }
301301 ItemKind :: Mac ( _) => panic ! ( "unexpanded macro in resolve!" ) ,
302302 }
303-
304- visit:: walk_item ( & mut BuildReducedGraphVisitor { resolver : self } , item) ;
305- self . current_module = parent;
306303 }
307304
308305 // Constructs the reduced graph for one variant. Variants exist in the
@@ -356,9 +353,6 @@ impl<'b> Resolver<'b> {
356353 self . module_map . insert ( block_id, new_module) ;
357354 self . current_module = new_module; // Descend into the block.
358355 }
359-
360- visit:: walk_block ( & mut BuildReducedGraphVisitor { resolver : self } , block) ;
361- self . current_module = parent;
362356 }
363357
364358 /// Builds the reduced graph for a single item in an external crate.
@@ -486,15 +480,21 @@ struct BuildReducedGraphVisitor<'a, 'b: 'a> {
486480
487481impl < ' a , ' b > Visitor for BuildReducedGraphVisitor < ' a , ' b > {
488482 fn visit_item ( & mut self , item : & Item ) {
483+ let parent = self . resolver . current_module ;
489484 self . resolver . build_reduced_graph_for_item ( item) ;
485+ visit:: walk_item ( self , item) ;
486+ self . resolver . current_module = parent;
490487 }
491488
492489 fn visit_foreign_item ( & mut self , foreign_item : & ForeignItem ) {
493490 self . resolver . build_reduced_graph_for_foreign_item ( foreign_item) ;
494491 }
495492
496493 fn visit_block ( & mut self , block : & Block ) {
494+ let parent = self . resolver . current_module ;
497495 self . resolver . build_reduced_graph_for_block ( block) ;
496+ visit:: walk_block ( self , block) ;
497+ self . resolver . current_module = parent;
498498 }
499499
500500 fn visit_trait_item ( & mut self , item : & TraitItem ) {
0 commit comments