about summary refs log tree commit diff
diff options
context:
space:
mode:
authorMichael Woerister <michaelwoerister@posteo.net>2017-05-16 17:12:00 +0200
committerMichael Woerister <michaelwoerister@posteo.net>2017-05-16 17:12:11 +0200
commit42051ceb162b8e69bcc9df580974ccff8f22f3c8 (patch)
treef9f5d72fa75c43e80c0f92dcc83b4b1bf90e6781
parent0a77a588578b69497caac7a507f875c8f258c9aa (diff)
downloadrust-42051ceb162b8e69bcc9df580974ccff8f22f3c8.tar.gz
rust-42051ceb162b8e69bcc9df580974ccff8f22f3c8.zip
Use tcx.type_of(impl) instead of TraitRef::self_ty() for getting Self in relevant_impls_for().
-rw-r--r--src/librustc/ty/trait_def.rs10
1 files changed, 5 insertions, 5 deletions
diff --git a/src/librustc/ty/trait_def.rs b/src/librustc/ty/trait_def.rs
index eb60f9d1010..865297c7ecb 100644
--- a/src/librustc/ty/trait_def.rs
+++ b/src/librustc/ty/trait_def.rs
@@ -170,12 +170,12 @@ pub(super) fn trait_impls_of_provider<'a, 'tcx>(tcx: TyCtxt<'a, 'tcx, 'tcx>,
                          .map(|&node_id| tcx.hir.local_def_id(node_id));
 
      for impl_def_id in local_impls.chain(remote_impls.into_iter()) {
-        let impl_trait_ref = tcx.impl_trait_ref(impl_def_id).unwrap();
-        if impl_def_id.is_local() && impl_trait_ref.references_error() {
+        let impl_self_ty = tcx.type_of(impl_def_id);
+        if impl_def_id.is_local() && impl_self_ty.references_error() {
             continue
         }
 
-        if fast_reject::simplify_type(tcx, impl_trait_ref.self_ty(), false).is_some() {
+        if fast_reject::simplify_type(tcx, impl_self_ty, false).is_some() {
             non_blanket_impls.push(impl_def_id);
         } else {
             blanket_impls.push(impl_def_id);
@@ -201,9 +201,9 @@ pub(super) fn relevant_trait_impls_provider<'a, 'tcx>(
         .iter()
         .cloned()
         .filter(|&impl_def_id| {
-            let impl_trait_ref = tcx.impl_trait_ref(impl_def_id).unwrap();
+            let impl_self_ty = tcx.type_of(impl_def_id);
             let impl_simple_self_ty = fast_reject::simplify_type(tcx,
-                                                                 impl_trait_ref.self_ty(),
+                                                                 impl_self_ty,
                                                                  false).unwrap();
             impl_simple_self_ty == self_ty
         })