diff options
Diffstat (limited to 'src/interp')
-rw-r--r-- | src/interp/g-opt.boot | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/interp/g-opt.boot b/src/interp/g-opt.boot index f29ef062..15bb906d 100644 --- a/src/interp/g-opt.boot +++ b/src/interp/g-opt.boot @@ -95,6 +95,11 @@ singleAssignment? form == ++ a sequence of first-time variable definitions. groupVariableDefinitions form == atomic? form => form + form.op is '%when => + -- FIXME: we should not be generating store-modifying predicates + for clause in form.args while not CONTAINED('%LET, first clause) repeat + second(clause) := groupVariableDefinitions second clause + form form isnt ['SEQ,:stmts,['EXIT,val]] => form defs := nil for x in stmts while singleAssignment? x repeat |