Remove needless dedup from projection

This commit is contained in:
Tatsuyuki Ishi 2018-02-18 11:37:14 +09:00
parent 0e26bb7287
commit 93e6b0d643

View file

@ -835,16 +835,6 @@ fn project_type<'cx, 'gcx, 'tcx>(
return Err(ProjectionTyError::TooManyCandidates);
}
// Drop duplicates.
//
// Note: `candidates.vec` seems to be on the critical path of the
// compiler. Replacing it with an HashSet was also tried, which would
// render the following dedup unnecessary. The original comment indicated
// that it was 9% slower, but that data is now obsolete and a new
// benchmark should be performed.
candidates.vec.sort_unstable();
candidates.vec.dedup();
// 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