@@ -52,7 +52,8 @@ impl<'a> Analyzer<'a> {
5252 let target_depth = self . find_first_different_cf_scope ( scope) ;
5353 let mut registered = false ;
5454 let mut tracker_dep = None ;
55- for scope in self . scoping . cf . iter_stack_mut ( ) . skip ( target_depth) . rev ( ) {
55+ for depth in ( target_depth..self . scoping . cf . stack_len ( ) ) . rev ( ) {
56+ let scope = self . scoping . cf . data_at_mut ( depth) ;
5657 if let Some ( data) = scope. exhaustive_data_mut ( ) {
5758 if data. clean
5859 && let Some ( temp_deps) = data. temp_deps . as_mut ( )
@@ -88,7 +89,8 @@ impl<'a> Analyzer<'a> {
8889 let mut exhaustive = false ;
8990 let mut must_mark = true ;
9091 let mut has_fn_scope = false ;
91- for scope in self . scoping . cf . iter_stack_mut ( ) . skip ( scope_depth) {
92+ for depth in scope_depth..self . scoping . cf . stack_len ( ) {
93+ let scope = self . scoping . cf . data_at_mut ( depth) ;
9294 has_fn_scope |= scope. kind . is_function ( ) ;
9395 if let Some ( data) = scope. exhaustive_data_mut ( ) {
9496 exhaustive = true ;
@@ -107,7 +109,8 @@ impl<'a> Analyzer<'a> {
107109 }
108110 if has_fn_scope {
109111 let mut non_det = false ;
110- for scope in self . scoping . cf . iter_stack_mut ( ) . skip ( scope_depth) . rev ( ) {
112+ for depth in ( scope_depth..self . scoping . cf . stack_len ( ) ) . rev ( ) {
113+ let scope = self . scoping . cf . data_at_mut ( depth) ;
111114 non_det |= scope. non_det ( ) ;
112115 if let Some ( data) = scope. fn_cache_tracking_data_mut ( ) {
113116 data. track_write ( target, cacheable. map ( |e| ( non_det, e) ) ) ;
0 commit comments