Combine drain_filter calls

This commit is contained in:
Aaron Hill 2021-10-31 16:14:16 -05:00
parent 851f2b2f96
commit 39d44e72ca
No known key found for this signature in database
GPG key ID: B4087E510E98B164

View file

@ -946,13 +946,13 @@ fn opt_normalize_projection_type<'a, 'b, 'tcx>(
};
let mut deduped: SsoHashSet<_> = Default::default();
result
.obligations
.drain_filter(|sub_obligation| !deduped.insert(sub_obligation.clone()));
let mut canonical =
SelectionContext::with_query_mode(selcx.infcx(), TraitQueryMode::Canonical);
result.obligations.drain_filter(|projected_obligation| {
if !deduped.insert(projected_obligation.clone()) {
return true;
}
// If any global obligations always apply, considering regions, then we don't
// need to include them. The `is_global` check rules out inference variables,
// so there's no need for the caller of `opt_normalize_projection_type`