File tree 1 file changed +2
-0
lines changed
src/librustc/middle/traits
1 file changed +2
-0
lines changed Original file line number Diff line number Diff line change @@ -859,6 +859,7 @@ fn confirm_impl_candidate<'cx,'tcx>(
859
859
// there don't seem to be nicer accessors to these:
860
860
let impl_or_trait_items_map = selcx. tcx ( ) . impl_or_trait_items . borrow ( ) ;
861
861
862
+ // Look for the associated type in the impl
862
863
for impl_item in & selcx. tcx ( ) . impl_items . borrow ( ) [ & impl_vtable. impl_def_id ] {
863
864
if let ty:: TypeTraitItem ( ref assoc_ty) = impl_or_trait_items_map[ & impl_item. def_id ( ) ] {
864
865
if assoc_ty. name == obligation. predicate . item_name {
@@ -868,6 +869,7 @@ fn confirm_impl_candidate<'cx,'tcx>(
868
869
}
869
870
}
870
871
872
+ // It is not in the impl - get the default from the trait.
871
873
let trait_ref = obligation. predicate . trait_ref ;
872
874
for trait_item in ty:: trait_items ( selcx. tcx ( ) , trait_ref. def_id ) . iter ( ) {
873
875
if let & ty:: TypeTraitItem ( ref assoc_ty) = trait_item {
You can’t perform that action at this time.
0 commit comments