diff options
| author | Corey Farwell <coreyf@rwell.org> | 2017-02-19 12:33:59 -0500 |
|---|---|---|
| committer | Corey Farwell <coreyf@rwell.org> | 2017-02-20 11:40:02 -0500 |
| commit | a97aed739b84df8d3bdd24e223dcd504e7e92615 (patch) | |
| tree | dd06b1f49ce28b4c33331e5403ddda31a8f6b714 /src | |
| parent | 83fe48d598ee188ae4d64a1fd12928e1026accf7 (diff) | |
| download | rust-a97aed739b84df8d3bdd24e223dcd504e7e92615.tar.gz rust-a97aed739b84df8d3bdd24e223dcd504e7e92615.zip | |
Remove unnecessary logic when finding simpilar `impl` candidates.
Diffstat (limited to 'src')
| -rw-r--r-- | src/librustc/traits/error_reporting.rs | 34 |
1 files changed, 3 insertions, 31 deletions
diff --git a/src/librustc/traits/error_reporting.rs b/src/librustc/traits/error_reporting.rs index 193c07166b0..9354a8f735b 100644 --- a/src/librustc/traits/error_reporting.rs +++ b/src/librustc/traits/error_reporting.rs @@ -359,34 +359,9 @@ impl<'a, 'gcx, 'tcx> InferCtxt<'a, 'gcx, 'tcx> { } 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 @@ impl<'a, 'gcx, 'tcx> InferCtxt<'a, 'gcx, 'tcx> { } 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 } |
