@@ -23,7 +23,6 @@ use rustc::middle::cstore::ExternCrate;
2323use rustc:: session:: config:: { CrateType , Input , OutputType } ;
2424use rustc:: ty:: { self , DefIdTree , TyCtxt } ;
2525use rustc:: { bug, span_bug} ;
26- use rustc_typeck:: hir_ty_to_ty;
2726use rustc_codegen_utils:: link:: { filename_for_metadata, out_filename} ;
2827use rustc_data_structures:: sync:: Lrc ;
2928
@@ -658,23 +657,9 @@ impl<'l, 'tcx: 'l> SaveContext<'l, 'tcx> {
658657 ..
659658 } ) => HirDef :: Local ( self . tcx . hir ( ) . hir_to_node_id ( canonical_id) ) ,
660659
661- Node :: Ty ( ty) => if let hir:: Ty {
662- node : hir:: TyKind :: Path ( ref qpath) ,
663- ..
664- } = * ty
665- {
666- match * qpath {
667- hir:: QPath :: Resolved ( _, ref path) => path. def ,
668- hir:: QPath :: TypeRelative ( ..) => {
669- let ty = hir_ty_to_ty ( self . tcx , ty) ;
670- if let ty:: Projection ( proj) = ty. sty {
671- return HirDef :: AssociatedTy ( proj. item_def_id ) ;
672- }
673- HirDef :: Err
674- }
675- }
676- } else {
677- HirDef :: Err
660+ Node :: Ty ( & hir:: Ty { node : hir:: TyKind :: Path ( ref qpath) , .. } ) => {
661+ let hir_id = self . tcx . hir ( ) . node_to_hir_id ( id) ;
662+ self . tables . qpath_def ( qpath, hir_id)
678663 } ,
679664
680665 _ => HirDef :: Err ,
0 commit comments