Bring back ParamEnv deduplication

This commit is contained in:
Tatsuyuki Ishi 2018-02-27 17:30:20 +09:00
parent 29f5c699b1
commit f297f56e76

View File

@ -142,8 +142,11 @@ impl<'tcx> ProjectionTyCandidateSet<'tcx> {
true
}
Single(current) => {
// No duplicates are expected.
assert_ne!(current, &candidate);
// Duplicates can happen inside ParamEnv. In the case, we
// perform a lazy deduplication.
if current == &candidate {
return false;
}
// Prefer where-clauses. As in select, if there are multiple
// candidates, we prefer where-clause candidates over impls. This
// may seem a bit surprising, since impls are the source of