Give index temporaries a drop scope
This commit is contained in:
parent
dbeed58ade
commit
89188815ed
@ -73,13 +73,15 @@ impl<'a, 'tcx> Builder<'a, 'tcx> {
|
||||
let (usize_ty, bool_ty) = (this.hir.usize_ty(), this.hir.bool_ty());
|
||||
|
||||
let slice = unpack!(block = this.as_place(block, lhs));
|
||||
// region_scope=None so place indexes live forever. They are scalars so they
|
||||
// do not need storage annotations, and they are often copied between
|
||||
// places.
|
||||
// Making this a *fresh* temporary also means we do not have to worry about
|
||||
// the index changing later: Nothing will ever change this temporary.
|
||||
// The "retagging" transformation (for Stacked Borrows) relies on this.
|
||||
let idx = unpack!(block = this.as_temp(block, None, index, Mutability::Mut));
|
||||
let idx = unpack!(block = this.as_temp(
|
||||
block,
|
||||
expr.temp_lifetime,
|
||||
index,
|
||||
Mutability::Not,
|
||||
));
|
||||
|
||||
// bounds check:
|
||||
let (len, lt) = (
|
||||
|
Loading…
x
Reference in New Issue
Block a user