@@ -125,7 +125,7 @@ struct LoweringContext<'a, 'hir> {
125
125
is_in_dyn_type : bool ,
126
126
127
127
current_hir_id_owner : hir:: OwnerId ,
128
- current_ast_id_owner : NodeId ,
128
+ current_ast_id_owner : PerOwnerResolverData ,
129
129
item_local_id_counter : hir:: ItemLocalId ,
130
130
trait_map : ItemLocalMap < Box < [ TraitCandidate ] > > ,
131
131
@@ -164,7 +164,10 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> {
164
164
children : Vec :: default ( ) ,
165
165
contract_ensures : None ,
166
166
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
+ } ,
168
171
item_local_id_counter : hir:: ItemLocalId :: ZERO ,
169
172
ident_and_label_to_local_id : Default :: default ( ) ,
170
173
#[ cfg( debug_assertions) ]
@@ -535,12 +538,7 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> {
535
538
self . tcx . at ( span) . create_def ( self . current_hir_id_owner . def_id , name, def_kind) . def_id ( ) ;
536
539
537
540
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) ;
544
542
545
543
def_id
546
544
}
@@ -555,7 +553,7 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> {
555
553
/// Given the id of some node in the AST, finds the `LocalDefId` associated with it by the name
556
554
/// resolver (if any).
557
555
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 ( )
559
557
}
560
558
561
559
fn local_def_id ( & self , node : NodeId ) -> LocalDefId {
@@ -564,10 +562,8 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> {
564
562
items. node_id_to_def_id . items ( ) . any ( |( node_id, def_id) | {
565
563
if * node_id == node {
566
564
panic ! (
567
- "{def_id:?} ({node_id}) was found in {:?} ({id}) instead of in {:?} ({}) " ,
565
+ "{def_id:?} ({node_id}) was found in {:?} ({id})" ,
568
566
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,
571
567
)
572
568
}
573
569
false
@@ -598,7 +594,10 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> {
598
594
let current_attrs = std:: mem:: take ( & mut self . attrs ) ;
599
595
let current_bodies = std:: mem:: take ( & mut self . bodies ) ;
600
596
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
+ ) ;
602
601
let current_ident_and_label_to_local_id =
603
602
std:: mem:: take ( & mut self . ident_and_label_to_local_id ) ;
604
603
0 commit comments