@@ -421,10 +421,12 @@ def visit_WHILE(self, node):
421421 yield node
422422
423423 def visit_FOR (self , node ):
424- from_ = yield node .children [1 ]
425- to_ = yield node .children [2 ]
426- step_ = yield node .children [3 ]
427- body_ = yield node .children [4 ]
424+ node = yield self .generic_visit (node )
425+
426+ from_ = node .children [1 ]
427+ to_ = node .children [2 ]
428+ step_ = node .children [3 ]
429+ body_ = node .children [4 ]
428430
429431 if self .O_LEVEL > 0 and chk .is_number (from_ , to_ , step_ ) and not chk .is_block_accessed (body_ ):
430432 if from_ > to_ and step_ > 0 :
@@ -434,8 +436,6 @@ def visit_FOR(self, node):
434436 yield self .NOP
435437 return
436438
437- for i , child in enumerate ((from_ , to_ , step_ , body_ ), start = 1 ):
438- node .children [i ] = child
439439 yield node
440440
441441 # TODO: ignore unused labels
@@ -446,8 +446,8 @@ def _visit_LABEL(self, node):
446446 yield node
447447
448448 def generic_visit (self , node : symbols .SYMBOL ):
449- for i in range ( len ( node .children ) ):
450- node .children [i ] = yield ToVisit (node . children [ i ] )
449+ for i , child in enumerate ( node .children ):
450+ node .children [i ] = yield ToVisit (child )
451451
452452 yield node
453453
0 commit comments