@@ -162,7 +162,7 @@ impl<'hir> Map<'hir> {
162
162
163
163
pub fn items ( & self ) -> impl Iterator < Item = & ' hir Item < ' hir > > + ' hir {
164
164
let krate = self . krate ( ) ;
165
- krate. owners . iter ( ) . filter_map ( |owner| match owner. as_ref ( ) ?. node ( ) {
165
+ krate. owners . iter ( ) . filter_map ( |owner| match owner. as_owner ( ) ?. node ( ) {
166
166
OwnerNode :: Item ( item) => Some ( item) ,
167
167
_ => None ,
168
168
} )
@@ -205,7 +205,8 @@ impl<'hir> Map<'hir> {
205
205
Some ( hir_id. owner )
206
206
} else {
207
207
self . tcx
208
- . hir_owner_nodes ( hir_id. owner ) ?
208
+ . hir_owner_nodes ( hir_id. owner )
209
+ . as_owner ( ) ?
209
210
. local_id_to_def_id
210
211
. get ( & hir_id. local_id )
211
212
. copied ( )
@@ -214,8 +215,7 @@ impl<'hir> Map<'hir> {
214
215
215
216
#[ inline]
216
217
pub fn local_def_id_to_hir_id ( & self , def_id : LocalDefId ) -> HirId {
217
- // FIXME(#85914) is this access safe for incr. comp.?
218
- self . tcx . untracked_resolutions . definitions . local_def_id_to_hir_id ( def_id)
218
+ self . tcx . local_def_id_to_hir_id ( def_id)
219
219
}
220
220
221
221
pub fn iter_local_def_id ( & self ) -> impl Iterator < Item = LocalDefId > + ' _ {
@@ -321,7 +321,7 @@ impl<'hir> Map<'hir> {
321
321
if id. local_id == ItemLocalId :: from_u32 ( 0 ) {
322
322
Some ( self . tcx . hir_owner_parent ( id. owner ) )
323
323
} else {
324
- let owner = self . tcx . hir_owner_nodes ( id. owner ) ?;
324
+ let owner = self . tcx . hir_owner_nodes ( id. owner ) . as_owner ( ) ?;
325
325
let node = owner. nodes [ id. local_id ] . as_ref ( ) ?;
326
326
let hir_id = HirId { owner : id. owner , local_id : node. parent } ;
327
327
Some ( hir_id)
@@ -338,7 +338,7 @@ impl<'hir> Map<'hir> {
338
338
let owner = self . tcx . hir_owner ( id. owner ) ?;
339
339
Some ( owner. node . into ( ) )
340
340
} else {
341
- let owner = self . tcx . hir_owner_nodes ( id. owner ) ?;
341
+ let owner = self . tcx . hir_owner_nodes ( id. owner ) . as_owner ( ) ?;
342
342
let node = owner. nodes [ id. local_id ] . as_ref ( ) ?;
343
343
Some ( node. node )
344
344
}
@@ -522,7 +522,7 @@ impl<'hir> Map<'hir> {
522
522
. owners
523
523
. iter_enumerated ( )
524
524
. flat_map ( move |( owner, owner_info) | {
525
- let bodies = & owner_info. as_ref ( ) ?. nodes . bodies ;
525
+ let bodies = & owner_info. as_owner ( ) ?. nodes . bodies ;
526
526
Some ( bodies. iter ( ) . map ( move |& ( local_id, _) | {
527
527
let hir_id = HirId { owner, local_id } ;
528
528
let body_id = BodyId { hir_id } ;
@@ -539,7 +539,7 @@ impl<'hir> Map<'hir> {
539
539
540
540
par_iter ( & self . krate ( ) . owners . raw ) . enumerate ( ) . for_each ( |( owner, owner_info) | {
541
541
let owner = LocalDefId :: new ( owner) ;
542
- if let Some ( owner_info) = owner_info {
542
+ if let MaybeOwner :: Owner ( owner_info) = owner_info {
543
543
par_iter ( owner_info. nodes . bodies . range ( ..) ) . for_each ( |( local_id, _) | {
544
544
let hir_id = HirId { owner, local_id : * local_id } ;
545
545
let body_id = BodyId { hir_id } ;
@@ -601,7 +601,7 @@ impl<'hir> Map<'hir> {
601
601
pub fn walk_attributes ( self , visitor : & mut impl Visitor < ' hir > ) {
602
602
let krate = self . krate ( ) ;
603
603
for ( owner, info) in krate. owners . iter_enumerated ( ) {
604
- if let Some ( info) = info {
604
+ if let MaybeOwner :: Owner ( info) = info {
605
605
for ( local_id, attrs) in info. attrs . map . iter ( ) {
606
606
let id = HirId { owner, local_id : * local_id } ;
607
607
for a in * attrs {
@@ -625,7 +625,7 @@ impl<'hir> Map<'hir> {
625
625
V : itemlikevisit:: ItemLikeVisitor < ' hir > ,
626
626
{
627
627
let krate = self . krate ( ) ;
628
- for owner in krate. owners . iter ( ) . filter_map ( Option :: as_ref ) {
628
+ for owner in krate. owners . iter ( ) . filter_map ( |i| i . as_owner ( ) ) {
629
629
match owner. node ( ) {
630
630
OwnerNode :: Item ( item) => visitor. visit_item ( item) ,
631
631
OwnerNode :: ForeignItem ( item) => visitor. visit_foreign_item ( item) ,
@@ -642,12 +642,14 @@ impl<'hir> Map<'hir> {
642
642
V : itemlikevisit:: ParItemLikeVisitor < ' hir > + Sync + Send ,
643
643
{
644
644
let krate = self . krate ( ) ;
645
- par_for_each_in ( & krate. owners . raw , |owner| match owner. as_ref ( ) . map ( OwnerInfo :: node) {
646
- Some ( OwnerNode :: Item ( item) ) => visitor. visit_item ( item) ,
647
- Some ( OwnerNode :: ForeignItem ( item) ) => visitor. visit_foreign_item ( item) ,
648
- Some ( OwnerNode :: ImplItem ( item) ) => visitor. visit_impl_item ( item) ,
649
- Some ( OwnerNode :: TraitItem ( item) ) => visitor. visit_trait_item ( item) ,
650
- Some ( OwnerNode :: Crate ( _) ) | None => { }
645
+ par_for_each_in ( & krate. owners . raw , |owner| match owner. map ( OwnerInfo :: node) {
646
+ MaybeOwner :: Owner ( OwnerNode :: Item ( item) ) => visitor. visit_item ( item) ,
647
+ MaybeOwner :: Owner ( OwnerNode :: ForeignItem ( item) ) => visitor. visit_foreign_item ( item) ,
648
+ MaybeOwner :: Owner ( OwnerNode :: ImplItem ( item) ) => visitor. visit_impl_item ( item) ,
649
+ MaybeOwner :: Owner ( OwnerNode :: TraitItem ( item) ) => visitor. visit_trait_item ( item) ,
650
+ MaybeOwner :: Owner ( OwnerNode :: Crate ( _) )
651
+ | MaybeOwner :: NonOwner ( _)
652
+ | MaybeOwner :: Phantom => { }
651
653
} )
652
654
}
653
655
@@ -1121,7 +1123,7 @@ pub(super) fn crate_hash(tcx: TyCtxt<'_>, crate_num: CrateNum) -> Svh {
1121
1123
. owners
1122
1124
. iter_enumerated ( )
1123
1125
. filter_map ( |( def_id, info) | {
1124
- let _ = info. as_ref ( ) ?;
1126
+ let _ = info. as_owner ( ) ?;
1125
1127
let def_path_hash = definitions. def_path_hash ( def_id) ;
1126
1128
let span = definitions. def_span ( def_id) ;
1127
1129
debug_assert_eq ! ( span. parent( ) , None ) ;
0 commit comments