@@ -18,7 +18,7 @@ use hir::TraitMap;
1818use hir:: def:: DefMap ;
1919use hir:: def_id:: { DefId , DefIndex } ;
2020use hir:: map as ast_map;
21- use hir:: map:: { DefKey , DefPath , DefPathData , DisambiguatedDefPathData } ;
21+ use hir:: map:: { DefKey , DefPathData , DisambiguatedDefPathData } ;
2222use middle:: free_region:: FreeRegionMap ;
2323use middle:: region:: RegionMaps ;
2424use middle:: resolve_lifetime;
@@ -538,8 +538,11 @@ impl<'a, 'gcx, 'tcx> TyCtxt<'a, 'gcx, 'tcx> {
538538 }
539539 }
540540
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) ) ;
543546
544547 let root_key = DefKey {
545548 parent : None ,
@@ -549,22 +552,22 @@ impl<'a, 'gcx, 'tcx> TyCtxt<'a, 'gcx, 'tcx> {
549552 } ,
550553 } ;
551554
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)
553556 . expect ( "no root key?" ) ;
554557
555558 debug ! ( "retrace_path: root_index={:?}" , root_index) ;
556559
557560 let mut index = root_index;
558- for data in & path . data {
561+ for data in path_data {
559562 let key = DefKey { parent : Some ( index) , disambiguated_data : data. clone ( ) } ;
560563 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) {
562565 Some ( i) => index = i,
563566 None => return None ,
564567 }
565568 }
566569
567- Some ( DefId { krate : path . krate , index : index } )
570+ Some ( DefId { krate : krate, index : index } )
568571 }
569572
570573 pub fn type_parameter_def ( self ,
0 commit comments