diff options
| author | Igor Matuszewski <Xanewok@gmail.com> | 2019-04-11 23:31:34 +0200 |
|---|---|---|
| committer | Igor Matuszewski <Xanewok@gmail.com> | 2019-04-11 23:37:05 +0200 |
| commit | 1ced262653bbd8dfbc44a69cc5039d6e4ae6f46b (patch) | |
| tree | 28d9e7b7aa18f5b40f456f7e5a9e79fc9d2d03d2 /src/librustc_save_analysis | |
| parent | 850912704e7bdf3eb8fc7d9ac9b99f913633bb8d (diff) | |
| download | rust-1ced262653bbd8dfbc44a69cc5039d6e4ae6f46b.tar.gz rust-1ced262653bbd8dfbc44a69cc5039d6e4ae6f46b.zip | |
save-analysis: use `qpath_def` for associated types
Diffstat (limited to 'src/librustc_save_analysis')
| -rw-r--r-- | src/librustc_save_analysis/lib.rs | 21 |
1 files changed, 3 insertions, 18 deletions
diff --git a/src/librustc_save_analysis/lib.rs b/src/librustc_save_analysis/lib.rs index a363fe11418..9b21e42bf38 100644 --- a/src/librustc_save_analysis/lib.rs +++ b/src/librustc_save_analysis/lib.rs @@ -23,7 +23,6 @@ use rustc::middle::cstore::ExternCrate; use rustc::session::config::{CrateType, Input, OutputType}; use rustc::ty::{self, DefIdTree, TyCtxt}; use rustc::{bug, span_bug}; -use rustc_typeck::hir_ty_to_ty; use rustc_codegen_utils::link::{filename_for_metadata, out_filename}; use rustc_data_structures::sync::Lrc; @@ -658,23 +657,9 @@ impl<'l, 'tcx: 'l> SaveContext<'l, 'tcx> { .. }) => HirDef::Local(self.tcx.hir().hir_to_node_id(canonical_id)), - Node::Ty(ty) => if let hir::Ty { - node: hir::TyKind::Path(ref qpath), - .. - } = *ty - { - match *qpath { - hir::QPath::Resolved(_, ref path) => path.def, - hir::QPath::TypeRelative(..) => { - let ty = hir_ty_to_ty(self.tcx, ty); - if let ty::Projection(proj) = ty.sty { - return HirDef::AssociatedTy(proj.item_def_id); - } - HirDef::Err - } - } - } else { - HirDef::Err + Node::Ty(&hir::Ty { node: hir::TyKind::Path(ref qpath), .. } ) => { + let hir_id = self.tcx.hir().node_to_hir_id(id); + self.tables.qpath_def(qpath, hir_id) }, _ => HirDef::Err, |
