@@ -23,7 +23,6 @@ use rustc::middle::cstore::ExternCrate;
23
23
use rustc:: session:: config:: { CrateType , Input , OutputType } ;
24
24
use rustc:: ty:: { self , DefIdTree , TyCtxt } ;
25
25
use rustc:: { bug, span_bug} ;
26
- use rustc_typeck:: hir_ty_to_ty;
27
26
use rustc_codegen_utils:: link:: { filename_for_metadata, out_filename} ;
28
27
use rustc_data_structures:: sync:: Lrc ;
29
28
@@ -658,23 +657,9 @@ impl<'l, 'tcx: 'l> SaveContext<'l, 'tcx> {
658
657
..
659
658
} ) => HirDef :: Local ( self . tcx . hir ( ) . hir_to_node_id ( canonical_id) ) ,
660
659
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)
678
663
} ,
679
664
680
665
_ => HirDef :: Err ,
0 commit comments