@@ -429,30 +429,21 @@ impl<'b, 'a, 'tcx> Gatherer<'b, 'a, 'tcx> {
429
429
fn gather_init ( & mut self , place : PlaceRef < ' cx , ' tcx > , kind : InitKind ) {
430
430
debug ! ( "gather_init({:?}, {:?})" , self . loc, place) ;
431
431
432
- let place = match place. projection {
433
- // Check if we are assigning into a field of a union, if so, lookup the place
434
- // of the union so it is marked as initialized again.
435
- Some ( box Projection {
436
- base : proj_base,
437
- elem : ProjectionElem :: Field ( _, _) ,
438
- } ) => {
439
- if let ty:: Adt ( def, _) =
440
- Place :: ty_from ( place. base , proj_base, self . builder . body , self . builder . tcx )
441
- . ty
442
- . sty
443
- {
444
- if def. is_union ( ) {
445
- PlaceRef { base : place. base , projection : proj_base }
446
- } else {
447
- place
448
- }
449
- } else {
450
- place
432
+ let mut place = place;
433
+
434
+ // Check if we are assigning into a field of a union, if so, lookup the place
435
+ // of the union so it is marked as initialized again.
436
+ if let Some ( box Projection { base : proj_base, elem : ProjectionElem :: Field ( _, _) } ) =
437
+ place. projection
438
+ {
439
+ if let ty:: Adt ( def, _) =
440
+ Place :: ty_from ( place. base , proj_base, self . builder . body , self . builder . tcx ) . ty . sty
441
+ {
442
+ if def. is_union ( ) {
443
+ place = PlaceRef { base : place. base , projection : proj_base }
451
444
}
452
445
}
453
-
454
- _ => place
455
- } ;
446
+ }
456
447
457
448
if let LookupResult :: Exact ( path) = self . builder . data . rev_lookup . find ( place) {
458
449
let init = self . builder . data . inits . push ( Init {
0 commit comments