@@ -162,7 +162,7 @@ impl<'hir> Map<'hir> {
162162
163163 pub fn items ( & self ) -> impl Iterator < Item = & ' hir Item < ' hir > > + ' hir {
164164 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 ( ) {
166166 OwnerNode :: Item ( item) => Some ( item) ,
167167 _ => None ,
168168 } )
@@ -205,7 +205,8 @@ impl<'hir> Map<'hir> {
205205 Some ( hir_id. owner )
206206 } else {
207207 self . tcx
208- . hir_owner_nodes ( hir_id. owner ) ?
208+ . hir_owner_nodes ( hir_id. owner )
209+ . as_owner ( ) ?
209210 . local_id_to_def_id
210211 . get ( & hir_id. local_id )
211212 . copied ( )
@@ -214,8 +215,7 @@ impl<'hir> Map<'hir> {
214215
215216 #[ inline]
216217 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)
219219 }
220220
221221 pub fn iter_local_def_id ( & self ) -> impl Iterator < Item = LocalDefId > + ' _ {
@@ -321,7 +321,7 @@ impl<'hir> Map<'hir> {
321321 if id. local_id == ItemLocalId :: from_u32 ( 0 ) {
322322 Some ( self . tcx . hir_owner_parent ( id. owner ) )
323323 } else {
324- let owner = self . tcx . hir_owner_nodes ( id. owner ) ?;
324+ let owner = self . tcx . hir_owner_nodes ( id. owner ) . as_owner ( ) ?;
325325 let node = owner. nodes [ id. local_id ] . as_ref ( ) ?;
326326 let hir_id = HirId { owner : id. owner , local_id : node. parent } ;
327327 Some ( hir_id)
@@ -338,7 +338,7 @@ impl<'hir> Map<'hir> {
338338 let owner = self . tcx . hir_owner ( id. owner ) ?;
339339 Some ( owner. node . into ( ) )
340340 } else {
341- let owner = self . tcx . hir_owner_nodes ( id. owner ) ?;
341+ let owner = self . tcx . hir_owner_nodes ( id. owner ) . as_owner ( ) ?;
342342 let node = owner. nodes [ id. local_id ] . as_ref ( ) ?;
343343 Some ( node. node )
344344 }
@@ -522,7 +522,7 @@ impl<'hir> Map<'hir> {
522522 . owners
523523 . iter_enumerated ( )
524524 . flat_map ( move |( owner, owner_info) | {
525- let bodies = & owner_info. as_ref ( ) ?. nodes . bodies ;
525+ let bodies = & owner_info. as_owner ( ) ?. nodes . bodies ;
526526 Some ( bodies. iter ( ) . map ( move |& ( local_id, _) | {
527527 let hir_id = HirId { owner, local_id } ;
528528 let body_id = BodyId { hir_id } ;
@@ -539,7 +539,7 @@ impl<'hir> Map<'hir> {
539539
540540 par_iter ( & self . krate ( ) . owners . raw ) . enumerate ( ) . for_each ( |( owner, owner_info) | {
541541 let owner = LocalDefId :: new ( owner) ;
542- if let Some ( owner_info) = owner_info {
542+ if let MaybeOwner :: Owner ( owner_info) = owner_info {
543543 par_iter ( owner_info. nodes . bodies . range ( ..) ) . for_each ( |( local_id, _) | {
544544 let hir_id = HirId { owner, local_id : * local_id } ;
545545 let body_id = BodyId { hir_id } ;
@@ -601,7 +601,7 @@ impl<'hir> Map<'hir> {
601601 pub fn walk_attributes ( self , visitor : & mut impl Visitor < ' hir > ) {
602602 let krate = self . krate ( ) ;
603603 for ( owner, info) in krate. owners . iter_enumerated ( ) {
604- if let Some ( info) = info {
604+ if let MaybeOwner :: Owner ( info) = info {
605605 for ( local_id, attrs) in info. attrs . map . iter ( ) {
606606 let id = HirId { owner, local_id : * local_id } ;
607607 for a in * attrs {
@@ -625,7 +625,7 @@ impl<'hir> Map<'hir> {
625625 V : itemlikevisit:: ItemLikeVisitor < ' hir > ,
626626 {
627627 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 ( ) ) {
629629 match owner. node ( ) {
630630 OwnerNode :: Item ( item) => visitor. visit_item ( item) ,
631631 OwnerNode :: ForeignItem ( item) => visitor. visit_foreign_item ( item) ,
@@ -642,12 +642,14 @@ impl<'hir> Map<'hir> {
642642 V : itemlikevisit:: ParItemLikeVisitor < ' hir > + Sync + Send ,
643643 {
644644 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 => { }
651653 } )
652654 }
653655
@@ -1121,7 +1123,7 @@ pub(super) fn crate_hash(tcx: TyCtxt<'_>, crate_num: CrateNum) -> Svh {
11211123 . owners
11221124 . iter_enumerated ( )
11231125 . filter_map ( |( def_id, info) | {
1124- let _ = info. as_ref ( ) ?;
1126+ let _ = info. as_owner ( ) ?;
11251127 let def_path_hash = definitions. def_path_hash ( def_id) ;
11261128 let span = definitions. def_span ( def_id) ;
11271129 debug_assert_eq ! ( span. parent( ) , None ) ;
0 commit comments