mirror of
https://github.com/Sei-Lisa/LSL-PyOptimizer
synced 2025-07-01 15:48:21 +00:00
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:
parent
caf50c4e14
commit
a93ea0ca19
1 changed files with 4 additions and 3 deletions
|
@ -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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue