diff options
| author | Ariel Ben-Yehuda <arielb1@mail.tau.ac.il> | 2015-05-27 20:42:42 +0300 |
|---|---|---|
| committer | Ariel Ben-Yehuda <arielb1@mail.tau.ac.il> | 2015-05-27 20:42:42 +0300 |
| commit | 699fc80780b50d302a74475ff9240995d8117516 (patch) | |
| tree | 44bffe9592b529ea156ecc8511454a2bc0665bf0 /src | |
| parent | c68e65251c86ffdb21aecec56ec45e303d952d79 (diff) | |
| download | rust-699fc80780b50d302a74475ff9240995d8117516.tar.gz rust-699fc80780b50d302a74475ff9240995d8117516.zip | |
Address review comments
Diffstat (limited to 'src')
| -rw-r--r-- | src/librustc/middle/traits/project.rs | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/src/librustc/middle/traits/project.rs b/src/librustc/middle/traits/project.rs index 700aaad8b72..969f82cc5ae 100644 --- a/src/librustc/middle/traits/project.rs +++ b/src/librustc/middle/traits/project.rs @@ -859,6 +859,7 @@ fn confirm_impl_candidate<'cx,'tcx>( // there don't seem to be nicer accessors to these: let impl_or_trait_items_map = selcx.tcx().impl_or_trait_items.borrow(); + // Look for the associated type in the impl for impl_item in &selcx.tcx().impl_items.borrow()[&impl_vtable.impl_def_id] { if let ty::TypeTraitItem(ref assoc_ty) = impl_or_trait_items_map[&impl_item.def_id()] { if assoc_ty.name == obligation.predicate.item_name { @@ -868,6 +869,7 @@ fn confirm_impl_candidate<'cx,'tcx>( } } + // It is not in the impl - get the default from the trait. let trait_ref = obligation.predicate.trait_ref; for trait_item in ty::trait_items(selcx.tcx(), trait_ref.def_id).iter() { if let &ty::TypeTraitItem(ref assoc_ty) = trait_item { |
