Use rposition to find the position of an elem

This commit is contained in:
Santiago Pastorino 2019-08-24 16:04:32 -07:00
parent e9c41148c0
commit 7efee8dd05
No known key found for this signature in database
GPG key ID: 88C941CDA1D46432

View file

@ -942,16 +942,15 @@ impl<'a, 'tcx> Builder<'a, 'tcx> {
for Binding { source, .. }
in matched_candidates.iter().flat_map(|candidate| &candidate.bindings)
{
for (i, elem) in source.projection.iter().enumerate().rev() {
if let Some(i) =
source.projection.iter().rposition(|elem| *elem == ProjectionElem::Deref)
{
let proj_base = &source.projection[..i];
if let ProjectionElem::Deref = elem {
fake_borrows.insert(Place {
base: source.base.clone(),
projection: proj_base.to_vec().into_boxed_slice(),
});
break;
}
fake_borrows.insert(Place {
base: source.base.clone(),
projection: proj_base.to_vec().into_boxed_slice(),
});
}
}
}