@@ -27,18 +27,23 @@ pub(super) struct RegionValueElements {
27
27
impl RegionValueElements {
28
28
pub ( super ) fn new ( mir : & Mir < ' _ > , num_universal_regions : usize ) -> Self {
29
29
let mut num_points = 0 ;
30
- let statements_before_block =
31
- mir. basic_blocks ( )
32
- . iter ( )
33
- . map ( |block_data| {
34
- let v = num_points;
35
- num_points += block_data. statements . len ( ) + 1 ;
36
- v
37
- } )
38
- . collect ( ) ;
39
-
40
- debug ! ( "RegionValueElements(num_universal_regions={:?})" , num_universal_regions) ;
41
- debug ! ( "RegionValueElements: statements_before_block={:#?}" , statements_before_block) ;
30
+ let statements_before_block = mir. basic_blocks ( )
31
+ . iter ( )
32
+ . map ( |block_data| {
33
+ let v = num_points;
34
+ num_points += block_data. statements . len ( ) + 1 ;
35
+ v
36
+ } )
37
+ . collect ( ) ;
38
+
39
+ debug ! (
40
+ "RegionValueElements(num_universal_regions={:?})" ,
41
+ num_universal_regions
42
+ ) ;
43
+ debug ! (
44
+ "RegionValueElements: statements_before_block={:#?}" ,
45
+ statements_before_block
46
+ ) ;
42
47
debug ! ( "RegionValueElements: num_points={:#?}" , num_points) ;
43
48
44
49
Self {
@@ -60,7 +65,9 @@ impl RegionValueElements {
60
65
61
66
/// Iterates over the `RegionElementIndex` for all points in the CFG.
62
67
pub ( super ) fn all_point_indices < ' a > ( & ' a self ) -> impl Iterator < Item = RegionElementIndex > + ' a {
63
- ( 0 ..self . num_points ) . map ( move |i| RegionElementIndex :: new ( i + self . num_universal_regions ) )
68
+ ( 0 ..self . num_points ) . map ( move |i| {
69
+ RegionElementIndex :: new ( i + self . num_universal_regions )
70
+ } )
64
71
}
65
72
66
73
/// Iterates over the `RegionElementIndex` for all points in the CFG.
@@ -95,12 +102,11 @@ impl RegionValueElements {
95
102
// be (BB2, 20).
96
103
//
97
104
// Nit: we could do a binary search here but I'm too lazy.
98
- let ( block, & first_index) =
99
- self . statements_before_block
100
- . iter_enumerated ( )
101
- . filter ( |( _, first_index) | * * first_index <= point_index)
102
- . last ( )
103
- . unwrap ( ) ;
105
+ let ( block, & first_index) = self . statements_before_block
106
+ . iter_enumerated ( )
107
+ . filter ( |( _, first_index) | * * first_index <= point_index)
108
+ . last ( )
109
+ . unwrap ( ) ;
104
110
105
111
RegionElement :: Location ( Location {
106
112
block,
@@ -151,7 +157,10 @@ pub(super) trait ToElementIndex {
151
157
152
158
impl ToElementIndex for Location {
153
159
fn to_element_index ( self , elements : & RegionValueElements ) -> RegionElementIndex {
154
- let Location { block, statement_index } = self ;
160
+ let Location {
161
+ block,
162
+ statement_index,
163
+ } = self ;
155
164
let start_index = elements. statements_before_block [ block] ;
156
165
RegionElementIndex :: new ( elements. num_universal_regions + start_index + statement_index)
157
166
}
0 commit comments