@@ -125,7 +125,7 @@ struct LoweringContext<'a, 'hir> {
125125 is_in_dyn_type : bool ,
126126
127127 current_hir_id_owner : hir:: OwnerId ,
128- current_ast_id_owner : NodeId ,
128+ current_ast_id_owner : PerOwnerResolverData ,
129129 item_local_id_counter : hir:: ItemLocalId ,
130130 trait_map : ItemLocalMap < Box < [ TraitCandidate ] > > ,
131131
@@ -164,7 +164,10 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> {
164164 children : Vec :: default ( ) ,
165165 contract_ensures : None ,
166166 current_hir_id_owner : hir:: CRATE_OWNER_ID ,
167- current_ast_id_owner : CRATE_NODE_ID ,
167+ current_ast_id_owner : PerOwnerResolverData {
168+ node_id_to_def_id : Default :: default ( ) ,
169+ id : DUMMY_NODE_ID ,
170+ } ,
168171 item_local_id_counter : hir:: ItemLocalId :: ZERO ,
169172 ident_and_label_to_local_id : Default :: default ( ) ,
170173 #[ cfg( debug_assertions) ]
@@ -535,12 +538,7 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> {
535538 self . tcx . at ( span) . create_def ( self . current_hir_id_owner . def_id , name, def_kind) . def_id ( ) ;
536539
537540 debug ! ( "create_def: def_id_to_node_id[{:?}] <-> {:?}" , def_id, node_id) ;
538- self . resolver
539- . owners
540- . get_mut ( & self . current_ast_id_owner )
541- . unwrap ( )
542- . node_id_to_def_id
543- . insert ( node_id, def_id) ;
541+ self . current_ast_id_owner . node_id_to_def_id . insert ( node_id, def_id) ;
544542
545543 def_id
546544 }
@@ -555,7 +553,7 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> {
555553 /// Given the id of some node in the AST, finds the `LocalDefId` associated with it by the name
556554 /// resolver (if any).
557555 fn opt_local_def_id ( & self , node : NodeId ) -> Option < LocalDefId > {
558- self . resolver . owners [ & self . current_ast_id_owner ] . node_id_to_def_id . get ( & node) . copied ( )
556+ self . current_ast_id_owner . node_id_to_def_id . get ( & node) . copied ( )
559557 }
560558
561559 fn local_def_id ( & self , node : NodeId ) -> LocalDefId {
@@ -564,10 +562,8 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> {
564562 items. node_id_to_def_id . items ( ) . any ( |( node_id, def_id) | {
565563 if * node_id == node {
566564 panic ! (
567- "{def_id:?} ({node_id}) was found in {:?} ({id}) instead of in {:?} ({}) " ,
565+ "{def_id:?} ({node_id}) was found in {:?} ({id})" ,
568566 items. node_id_to_def_id. get( id) ,
569- self . resolver. owners[ & self . current_ast_id_owner] . node_id_to_def_id[ & self . current_ast_id_owner] ,
570- self . current_ast_id_owner,
571567 )
572568 }
573569 false
@@ -598,7 +594,10 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> {
598594 let current_attrs = std:: mem:: take ( & mut self . attrs ) ;
599595 let current_bodies = std:: mem:: take ( & mut self . bodies ) ;
600596 let current_define_opaque = std:: mem:: take ( & mut self . define_opaque ) ;
601- let current_ast_owner = std:: mem:: replace ( & mut self . current_ast_id_owner , owner) ;
597+ let current_ast_owner = std:: mem:: replace (
598+ & mut self . current_ast_id_owner ,
599+ self . resolver . owners . remove ( & owner) . unwrap ( ) ,
600+ ) ;
602601 let current_ident_and_label_to_local_id =
603602 std:: mem:: take ( & mut self . ident_and_label_to_local_id ) ;
604603
0 commit comments