@@ -18,7 +18,7 @@ use hir::TraitMap;
18
18
use hir:: def:: DefMap ;
19
19
use hir:: def_id:: { DefId , DefIndex } ;
20
20
use hir:: map as ast_map;
21
- use hir:: map:: { DefKey , DefPath , DefPathData , DisambiguatedDefPathData } ;
21
+ use hir:: map:: { DefKey , DefPathData , DisambiguatedDefPathData } ;
22
22
use middle:: free_region:: FreeRegionMap ;
23
23
use middle:: region:: RegionMaps ;
24
24
use middle:: resolve_lifetime;
@@ -538,8 +538,11 @@ impl<'a, 'gcx, 'tcx> TyCtxt<'a, 'gcx, 'tcx> {
538
538
}
539
539
}
540
540
541
- pub fn retrace_path ( self , path : & DefPath ) -> Option < DefId > {
542
- debug ! ( "retrace_path(path={:?}, krate={:?})" , path, self . crate_name( path. krate) ) ;
541
+ pub fn retrace_path ( self ,
542
+ krate : ast:: CrateNum ,
543
+ path_data : & [ DisambiguatedDefPathData ] )
544
+ -> Option < DefId > {
545
+ debug ! ( "retrace_path(path={:?}, krate={:?})" , path_data, self . crate_name( krate) ) ;
543
546
544
547
let root_key = DefKey {
545
548
parent : None ,
@@ -549,22 +552,22 @@ impl<'a, 'gcx, 'tcx> TyCtxt<'a, 'gcx, 'tcx> {
549
552
} ,
550
553
} ;
551
554
552
- let root_index = self . def_index_for_def_key ( path . krate , root_key)
555
+ let root_index = self . def_index_for_def_key ( krate, root_key)
553
556
. expect ( "no root key?" ) ;
554
557
555
558
debug ! ( "retrace_path: root_index={:?}" , root_index) ;
556
559
557
560
let mut index = root_index;
558
- for data in & path . data {
561
+ for data in path_data {
559
562
let key = DefKey { parent : Some ( index) , disambiguated_data : data. clone ( ) } ;
560
563
debug ! ( "retrace_path: key={:?}" , key) ;
561
- match self . def_index_for_def_key ( path . krate , key) {
564
+ match self . def_index_for_def_key ( krate, key) {
562
565
Some ( i) => index = i,
563
566
None => return None ,
564
567
}
565
568
}
566
569
567
- Some ( DefId { krate : path . krate , index : index } )
570
+ Some ( DefId { krate : krate, index : index } )
568
571
}
569
572
570
573
pub fn type_parameter_def ( self ,
0 commit comments