@@ -781,19 +781,13 @@ impl<'a, 'tcx> Liveness<'a, 'tcx> {
781
781
debug ! ( "init_from_succ(ln={}, succ={})" , self . ln_str( ln) , self . ln_str( succ_ln) ) ;
782
782
}
783
783
784
- fn merge_from_succ ( & mut self , ln : LiveNode , succ_ln : LiveNode , first_merge : bool ) -> bool {
784
+ fn merge_from_succ ( & mut self , ln : LiveNode , succ_ln : LiveNode ) -> bool {
785
785
if ln == succ_ln {
786
786
return false ;
787
787
}
788
788
789
789
let changed = self . rwu_table . union ( ln, succ_ln) ;
790
- debug ! (
791
- "merge_from_succ(ln={:?}, succ={}, first_merge={}, changed={})" ,
792
- ln,
793
- self . ln_str( succ_ln) ,
794
- first_merge,
795
- changed
796
- ) ;
790
+ debug ! ( "merge_from_succ(ln={:?}, succ={}, changed={})" , ln, self . ln_str( succ_ln) , changed) ;
797
791
changed
798
792
}
799
793
@@ -893,7 +887,6 @@ impl<'a, 'tcx> Liveness<'a, 'tcx> {
893
887
} ;
894
888
895
889
// Propagate through calls to the closure.
896
- let mut first_merge = true ;
897
890
loop {
898
891
self . init_from_succ ( self . closure_ln , succ) ;
899
892
for param in body. params {
@@ -903,10 +896,9 @@ impl<'a, 'tcx> Liveness<'a, 'tcx> {
903
896
} )
904
897
}
905
898
906
- if !self . merge_from_succ ( self . exit_ln , self . closure_ln , first_merge ) {
899
+ if !self . merge_from_succ ( self . exit_ln , self . closure_ln ) {
907
900
break ;
908
901
}
909
- first_merge = false ;
910
902
assert_eq ! ( succ, self . propagate_through_expr( & body. value, self . exit_ln) ) ;
911
903
}
912
904
@@ -1012,7 +1004,6 @@ impl<'a, 'tcx> Liveness<'a, 'tcx> {
1012
1004
//
1013
1005
let ln = self . live_node ( expr. hir_id , expr. span ) ;
1014
1006
self . init_empty ( ln, succ) ;
1015
- let mut first_merge = true ;
1016
1007
for arm in arms {
1017
1008
let body_succ = self . propagate_through_expr ( & arm. body , succ) ;
1018
1009
@@ -1021,8 +1012,7 @@ impl<'a, 'tcx> Liveness<'a, 'tcx> {
1021
1012
body_succ,
1022
1013
) ;
1023
1014
let arm_succ = self . define_bindings_in_pat ( & arm. pat , guard_succ) ;
1024
- self . merge_from_succ ( ln, arm_succ, first_merge) ;
1025
- first_merge = false ;
1015
+ self . merge_from_succ ( ln, arm_succ) ;
1026
1016
}
1027
1017
self . propagate_through_expr ( & e, ln)
1028
1018
}
@@ -1133,7 +1123,7 @@ impl<'a, 'tcx> Liveness<'a, 'tcx> {
1133
1123
1134
1124
let ln = self . live_node ( expr. hir_id , expr. span ) ;
1135
1125
self . init_from_succ ( ln, succ) ;
1136
- self . merge_from_succ ( ln, r_succ, false ) ;
1126
+ self . merge_from_succ ( ln, r_succ) ;
1137
1127
1138
1128
self . propagate_through_expr ( & l, ln)
1139
1129
}
@@ -1377,7 +1367,6 @@ impl<'a, 'tcx> Liveness<'a, 'tcx> {
1377
1367
*/
1378
1368
1379
1369
// first iteration:
1380
- let mut first_merge = true ;
1381
1370
let ln = self . live_node ( expr. hir_id , expr. span ) ;
1382
1371
self . init_empty ( ln, succ) ;
1383
1372
debug ! ( "propagate_through_loop: using id for loop body {} {:?}" , expr. hir_id, body) ;
@@ -1389,8 +1378,7 @@ impl<'a, 'tcx> Liveness<'a, 'tcx> {
1389
1378
let body_ln = self . propagate_through_block ( body, ln) ;
1390
1379
1391
1380
// repeat until fixed point is reached:
1392
- while self . merge_from_succ ( ln, body_ln, first_merge) {
1393
- first_merge = false ;
1381
+ while self . merge_from_succ ( ln, body_ln) {
1394
1382
assert_eq ! ( body_ln, self . propagate_through_block( body, ln) ) ;
1395
1383
}
1396
1384
0 commit comments