@@ -156,19 +156,22 @@ impl<'hir> Map<'hir> {
156156
157157 #[ inline]
158158 pub fn definitions ( & self ) -> & ' hir Definitions {
159- & self . tcx . definitions
159+ // Accessing the definitions is ok, since all its contents are tracked by the query system.
160+ & self . tcx . untracked_resolutions . definitions
160161 }
161162
162163 pub fn def_key ( & self , def_id : LocalDefId ) -> DefKey {
163- self . tcx . definitions . def_key ( def_id)
164+ // Accessing the definitions is ok, since all its contents are tracked by the query system.
165+ self . tcx . untracked_resolutions . definitions . def_key ( def_id)
164166 }
165167
166168 pub fn def_path_from_hir_id ( & self , id : HirId ) -> Option < DefPath > {
167169 self . opt_local_def_id ( id) . map ( |def_id| self . def_path ( def_id) )
168170 }
169171
170172 pub fn def_path ( & self , def_id : LocalDefId ) -> DefPath {
171- self . tcx . definitions . def_path ( def_id)
173+ // Accessing the definitions is ok, since all its contents are tracked by the query system.
174+ self . tcx . untracked_resolutions . definitions . def_path ( def_id)
172175 }
173176
174177 #[ inline]
@@ -184,16 +187,19 @@ impl<'hir> Map<'hir> {
184187
185188 #[ inline]
186189 pub fn opt_local_def_id ( & self , hir_id : HirId ) -> Option < LocalDefId > {
187- self . tcx . definitions . opt_hir_id_to_local_def_id ( hir_id)
190+ // Accessing the definitions is ok, since all its contents are tracked by the query system.
191+ self . tcx . untracked_resolutions . definitions . opt_hir_id_to_local_def_id ( hir_id)
188192 }
189193
190194 #[ inline]
191195 pub fn local_def_id_to_hir_id ( & self , def_id : LocalDefId ) -> HirId {
192- self . tcx . definitions . local_def_id_to_hir_id ( def_id)
196+ // Accessing the definitions is ok, since all its contents are tracked by the query system.
197+ self . tcx . untracked_resolutions . definitions . local_def_id_to_hir_id ( def_id)
193198 }
194199
195200 pub fn iter_local_def_id ( & self ) -> impl Iterator < Item = LocalDefId > + ' _ {
196- self . tcx . definitions . iter_local_def_id ( )
201+ // Accessing the definitions is ok, since all its contents are tracked by the query system.
202+ self . tcx . untracked_resolutions . definitions . iter_local_def_id ( )
197203 }
198204
199205 pub fn opt_def_kind ( & self , local_def_id : LocalDefId ) -> Option < DefKind > {
@@ -932,9 +938,15 @@ impl<'hir> intravisit::Map<'hir> for Map<'hir> {
932938pub ( super ) fn index_hir < ' tcx > ( tcx : TyCtxt < ' tcx > , ( ) : ( ) ) -> & ' tcx IndexedHir < ' tcx > {
933939 let _prof_timer = tcx. sess . prof . generic_activity ( "build_hir_map" ) ;
934940
941+ // We can access untracked state since we are an eval_always query.
935942 let hcx = tcx. create_stable_hashing_context ( ) ;
936- let mut collector =
937- NodeCollector :: root ( tcx. sess , & * * tcx. arena , tcx. untracked_crate , & tcx. definitions , hcx) ;
943+ let mut collector = NodeCollector :: root (
944+ tcx. sess ,
945+ & * * tcx. arena ,
946+ tcx. untracked_crate ,
947+ & tcx. untracked_resolutions . definitions ,
948+ hcx,
949+ ) ;
938950 intravisit:: walk_crate ( & mut collector, tcx. untracked_crate ) ;
939951
940952 let map = collector. finalize_and_compute_crate_hash ( ) ;
@@ -944,14 +956,15 @@ pub(super) fn index_hir<'tcx>(tcx: TyCtxt<'tcx>, (): ()) -> &'tcx IndexedHir<'tc
944956pub ( super ) fn crate_hash ( tcx : TyCtxt < ' _ > , crate_num : CrateNum ) -> Svh {
945957 assert_eq ! ( crate_num, LOCAL_CRATE ) ;
946958
959+ // We can access untracked state since we are an eval_always query.
947960 let mut hcx = tcx. create_stable_hashing_context ( ) ;
948961
949962 let mut hir_body_nodes: Vec < _ > = tcx
950963 . index_hir ( ( ) )
951964 . map
952965 . iter_enumerated ( )
953966 . filter_map ( |( def_id, hod) | {
954- let def_path_hash = tcx. definitions . def_path_hash ( def_id) ;
967+ let def_path_hash = tcx. untracked_resolutions . definitions . def_path_hash ( def_id) ;
955968 let mut hasher = StableHasher :: new ( ) ;
956969 hod. as_ref ( ) ?. hash_stable ( & mut hcx, & mut hasher) ;
957970 AttributeMap { map : & tcx. untracked_crate . attrs , prefix : def_id }
@@ -968,7 +981,7 @@ pub(super) fn crate_hash(tcx: TyCtxt<'_>, crate_num: CrateNum) -> Svh {
968981 } ,
969982 ) ;
970983
971- let upstream_crates = upstream_crates ( & * tcx. cstore ) ;
984+ let upstream_crates = upstream_crates ( & * tcx. untracked_resolutions . cstore ) ;
972985
973986 // We hash the final, remapped names of all local source files so we
974987 // don't have to include the path prefix remapping commandline args.
0 commit comments