]> git.lizzy.rs Git - rust.git/commitdiff
Remove unnecessary logic when finding simpilar `impl` candidates.
authorCorey Farwell <coreyf@rwell.org>
Sun, 19 Feb 2017 17:33:59 +0000 (12:33 -0500)
committerCorey Farwell <coreyf@rwell.org>
Mon, 20 Feb 2017 16:40:02 +0000 (11:40 -0500)
src/librustc/traits/error_reporting.rs

index 193c07166b04e6924a4f4709424539802e157e7f..9354a8f735bc6c2f0dfd91d4702e63a050641840 100644 (file)
@@ -359,34 +359,9 @@ fn find_similar_impl_candidates(&self,
     }
 
     fn report_similar_impl_candidates(&self,
-                                      trait_ref: ty::PolyTraitRef<'tcx>,
+                                      impl_candidates: Vec<ty::TraitRef<'tcx>>,
                                       err: &mut DiagnosticBuilder)
     {
-        let simp = fast_reject::simplify_type(self.tcx,
-                                              trait_ref.skip_binder().self_ty(),
-                                              true);
-        let mut impl_candidates = Vec::new();
-        let trait_def = self.tcx.lookup_trait_def(trait_ref.def_id());
-
-        match simp {
-            Some(simp) => trait_def.for_each_impl(self.tcx, |def_id| {
-                let imp = self.tcx.impl_trait_ref(def_id).unwrap();
-                let imp_simp = fast_reject::simplify_type(self.tcx,
-                                                          imp.self_ty(),
-                                                          true);
-                if let Some(imp_simp) = imp_simp {
-                    if simp != imp_simp {
-                        return;
-                    }
-                }
-                impl_candidates.push(imp);
-            }),
-            None => trait_def.for_each_impl(self.tcx, |def_id| {
-                impl_candidates.push(
-                    self.tcx.impl_trait_ref(def_id).unwrap());
-            })
-        };
-
         if impl_candidates.is_empty() {
             return;
         }
@@ -574,11 +549,8 @@ pub fn report_selection_error(&self,
                         } else {
                             // If we can't show anything useful, try to find
                             // similar impls.
-                            let impl_candidates =
-                                self.find_similar_impl_candidates(trait_ref);
-                            if impl_candidates.len() > 0 {
-                                self.report_similar_impl_candidates(trait_ref, &mut err);
-                            }
+                            let impl_candidates = self.find_similar_impl_candidates(trait_ref);
+                            self.report_similar_impl_candidates(impl_candidates, &mut err);
                         }
                         err
                     }