@@ -2,19 +2,17 @@ use rustc_data_structures::fx::FxHashMap;
2
2
use rustc_data_structures:: sorted_map:: SortedMap ;
3
3
use rustc_hir as hir;
4
4
use rustc_hir:: def_id:: LocalDefId ;
5
- use rustc_hir:: definitions;
6
5
use rustc_hir:: intravisit:: { self , Visitor } ;
7
6
use rustc_hir:: * ;
8
7
use rustc_index:: { Idx , IndexVec } ;
9
8
use rustc_middle:: span_bug;
10
- use rustc_session:: Session ;
11
- use rustc_span:: source_map:: SourceMap ;
9
+ use rustc_middle:: ty:: TyCtxt ;
12
10
use rustc_span:: { Span , DUMMY_SP } ;
13
11
14
12
/// A visitor that walks over the HIR and collects `Node`s into a HIR map.
15
13
pub ( super ) struct NodeCollector < ' a , ' hir > {
16
- /// Source map
17
- source_map : & ' a SourceMap ,
14
+ tcx : TyCtxt < ' hir > ,
15
+
18
16
bodies : & ' a SortedMap < ItemLocalId , & ' hir Body < ' hir > > ,
19
17
20
18
/// Outputs
@@ -25,14 +23,11 @@ pub(super) struct NodeCollector<'a, 'hir> {
25
23
parent_node : hir:: ItemLocalId ,
26
24
27
25
owner : OwnerId ,
28
-
29
- definitions : & ' a definitions:: Definitions ,
30
26
}
31
27
32
- #[ instrument( level = "debug" , skip( sess , definitions , bodies) ) ]
28
+ #[ instrument( level = "debug" , skip( tcx , bodies) ) ]
33
29
pub ( super ) fn index_hir < ' hir > (
34
- sess : & Session ,
35
- definitions : & definitions:: Definitions ,
30
+ tcx : TyCtxt < ' hir > ,
36
31
item : hir:: OwnerNode < ' hir > ,
37
32
bodies : & SortedMap < ItemLocalId , & ' hir Body < ' hir > > ,
38
33
) -> ( IndexVec < ItemLocalId , Option < ParentedNode < ' hir > > > , FxHashMap < LocalDefId , ItemLocalId > ) {
@@ -42,8 +37,7 @@ pub(super) fn index_hir<'hir>(
42
37
// used.
43
38
nodes. push ( Some ( ParentedNode { parent : ItemLocalId :: INVALID , node : item. into ( ) } ) ) ;
44
39
let mut collector = NodeCollector {
45
- source_map : sess. source_map ( ) ,
46
- definitions,
40
+ tcx,
47
41
owner : item. def_id ( ) ,
48
42
parent_node : ItemLocalId :: new ( 0 ) ,
49
43
nodes,
@@ -79,11 +73,17 @@ impl<'a, 'hir> NodeCollector<'a, 'hir> {
79
73
span,
80
74
"inconsistent HirId at `{:?}` for `{:?}`: \
81
75
current_dep_node_owner={} ({:?}), hir_id.owner={} ({:?})",
82
- self . source_map. span_to_diagnostic_string( span) ,
76
+ self . tcx . sess . source_map( ) . span_to_diagnostic_string( span) ,
83
77
node,
84
- self . definitions. def_path( self . owner. def_id) . to_string_no_crate_verbose( ) ,
78
+ self . tcx
79
+ . definitions_untracked( )
80
+ . def_path( self . owner. def_id)
81
+ . to_string_no_crate_verbose( ) ,
85
82
self . owner,
86
- self . definitions. def_path( hir_id. owner. def_id) . to_string_no_crate_verbose( ) ,
83
+ self . tcx
84
+ . definitions_untracked( )
85
+ . def_path( hir_id. owner. def_id)
86
+ . to_string_no_crate_verbose( ) ,
87
87
hir_id. owner,
88
88
)
89
89
}
0 commit comments