diff options
Diffstat (limited to 'src/interp/g-opt.boot')
-rw-r--r-- | src/interp/g-opt.boot | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/interp/g-opt.boot b/src/interp/g-opt.boot index aedaa218..cfaa3730 100644 --- a/src/interp/g-opt.boot +++ b/src/interp/g-opt.boot @@ -315,7 +315,11 @@ optCONDtail l == [frst,:optCONDtail l'] optSEQ ["SEQ",:l] == - tryToRemoveSEQ SEQToCOND getRidOfTemps l where + tryToRemoveSEQ SEQToCOND getRidOfTemps splicePROGN l where + splicePROGN l == + isAtomicForm l => l + l is [["PROGN",:stmts],:l'] => [:stmts,:l'] + rplac(rest l, splicePROGN rest l) getRidOfTemps l == null l => nil l is [["%LET",g,x,:.],:r] and GENSYMP g and 2>numOfOccurencesOf(g,r) => |