Delete statements in a {} block when they are SEF

This is probably equivalent to what we did, as FoldStmt changes SEF statements to ';' statements, but it's simpler.
This commit is contained in:
Sei Lisa 2018-05-17 06:33:01 +02:00
parent caf50c4e14
commit a93ea0ca19

View file

@ -1578,17 +1578,18 @@ class foldconst(object):
return
if nt == '{}':
# Remove SEF statements, and mark as SEF if it ends up empty
idx = 0
issef = True
while idx < len(child):
self.FoldTree(child, idx)
self.FoldStmt(child, idx)
issef = issef and child[idx].SEF
if child[idx].nt == ';' \
or child[idx].nt == '{}' and not child[idx].ch:
if child[idx].SEF:
# SEF statements can be removed
del child[idx]
else:
idx += 1
issef = False
if issef:
node.SEF = True
return