From 196c98d314776f01cb2f32aae63565c118ef62d3 Mon Sep 17 00:00:00 2001 From: Niko Matsakis Date: Wed, 3 May 2017 11:53:06 -0400 Subject: [PATCH] remove use of `ast_ty_to_ty_cache` from librustdoc --- src/Cargo.lock | 1 + src/librustdoc/Cargo.toml | 1 + src/librustdoc/clean/mod.rs | 8 ++++---- src/librustdoc/lib.rs | 1 + 4 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/Cargo.lock b/src/Cargo.lock index 21b167f6d4273..7b1a1ec7d26d3 100644 --- a/src/Cargo.lock +++ b/src/Cargo.lock @@ -793,6 +793,7 @@ dependencies = [ "rustc_metadata 0.0.0", "rustc_resolve 0.0.0", "rustc_trans 0.0.0", + "rustc_typeck 0.0.0", "serialize 0.0.0", "syntax 0.0.0", "syntax_pos 0.0.0", diff --git a/src/librustdoc/Cargo.toml b/src/librustdoc/Cargo.toml index 7caae51e88913..0e8a6606ae79f 100644 --- a/src/librustdoc/Cargo.toml +++ b/src/librustdoc/Cargo.toml @@ -21,6 +21,7 @@ rustc_errors = { path = "../librustc_errors" } rustc_lint = { path = "../librustc_lint" } rustc_metadata = { path = "../librustc_metadata" } rustc_resolve = { path = "../librustc_resolve" } +rustc_typeck = { path = "../librustc_typeck" } rustc_trans = { path = "../librustc_trans" } serialize = { path = "../libserialize" } syntax = { path = "../libsyntax" } diff --git a/src/librustdoc/clean/mod.rs b/src/librustdoc/clean/mod.rs index 0a74848724432..24d056035ceec 100644 --- a/src/librustdoc/clean/mod.rs +++ b/src/librustdoc/clean/mod.rs @@ -36,6 +36,7 @@ use rustc::ty::subst::Substs; use rustc::ty::{self, AdtKind}; use rustc::middle::stability; use rustc::util::nodemap::{FxHashMap, FxHashSet}; +use rustc_typeck::hir_ty_to_ty; use rustc::hir; @@ -1779,10 +1780,9 @@ impl Clean for hir::Ty { } TyPath(hir::QPath::TypeRelative(ref qself, ref segment)) => { let mut def = Def::Err; - if let Some(ty) = cx.tcx.ast_ty_to_ty_cache.borrow().get(&self.id) { - if let ty::TyProjection(proj) = ty.sty { - def = Def::Trait(proj.trait_ref.def_id); - } + let ty = hir_ty_to_ty(cx.tcx, self); + if let ty::TyProjection(proj) = ty.sty { + def = Def::Trait(proj.trait_ref.def_id); } let trait_path = hir::Path { span: self.span, diff --git a/src/librustdoc/lib.rs b/src/librustdoc/lib.rs index 2a6134fde5c3d..d4be1aba62d23 100644 --- a/src/librustdoc/lib.rs +++ b/src/librustdoc/lib.rs @@ -41,6 +41,7 @@ extern crate rustc_resolve; extern crate rustc_lint; extern crate rustc_back; extern crate rustc_metadata; +extern crate rustc_typeck; extern crate serialize; #[macro_use] extern crate syntax; extern crate syntax_pos;