@@ -252,13 +252,13 @@ fn find_stmt_assigns_to<'a, 'tcx: 'a>(
252
252
stmts
253
253
. rev ( )
254
254
. find_map ( |stmt| {
255
- if let mir:: StatementKind :: Assign (
255
+ if let mir:: StatementKind :: Assign ( box (
256
256
mir:: Place {
257
257
base : mir:: PlaceBase :: Local ( local) ,
258
258
..
259
259
} ,
260
260
v,
261
- ) = & stmt. kind
261
+ ) ) = & stmt. kind
262
262
{
263
263
if * local == to {
264
264
return Some ( v) ;
@@ -269,10 +269,10 @@ fn find_stmt_assigns_to<'a, 'tcx: 'a>(
269
269
} )
270
270
. and_then ( |v| {
271
271
if by_ref {
272
- if let mir:: Rvalue :: Ref ( _, _, ref place) = * * v {
272
+ if let mir:: Rvalue :: Ref ( _, _, ref place) = v {
273
273
return base_local_and_movability ( cx, mir, place) ;
274
274
}
275
- } else if let mir:: Rvalue :: Use ( mir:: Operand :: Copy ( ref place) ) = * * v {
275
+ } else if let mir:: Rvalue :: Use ( mir:: Operand :: Copy ( ref place) ) = v {
276
276
return base_local_and_movability ( cx, mir, place) ;
277
277
}
278
278
None
@@ -291,7 +291,6 @@ fn base_local_and_movability<'tcx>(
291
291
use rustc:: mir:: Place ;
292
292
use rustc:: mir:: PlaceBase ;
293
293
use rustc:: mir:: PlaceRef ;
294
- use rustc:: mir:: Projection ;
295
294
296
295
// Dereference. You cannot move things out from a borrowed value.
297
296
let mut deref = false ;
@@ -303,7 +302,7 @@ fn base_local_and_movability<'tcx>(
303
302
mut projection,
304
303
} = place. as_ref ( ) ;
305
304
if let PlaceBase :: Local ( local) = place_base {
306
- while let Some ( box Projection { base , elem } ) = projection {
305
+ while let [ base @ .. , elem] = projection {
307
306
projection = base;
308
307
deref = matches ! ( elem, mir:: ProjectionElem :: Deref ) ;
309
308
field = !field
0 commit comments