aboutsummaryrefslogtreecommitdiff
path: root/src/interp/g-util.boot
diff options
context:
space:
mode:
Diffstat (limited to 'src/interp/g-util.boot')
-rw-r--r--src/interp/g-util.boot9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/interp/g-util.boot b/src/interp/g-util.boot
index 95b36c06..50846d50 100644
--- a/src/interp/g-util.boot
+++ b/src/interp/g-util.boot
@@ -250,8 +250,13 @@ expandCollect ['%collect,:iters,body] ==
expandListlit(x is ['%listlit,:args]) ==
args := [expandToVMForm arg for arg in args]
args = nil => nil
- and/[integer? arg or string? arg for arg in args] => quoteForm args
- ['LIST,:args]
+ args' := [simpleValue? arg or leave 'failed for arg in args]
+ where simpleValue? arg ==
+ integer? arg or string? arg => arg
+ arg is ['QUOTE,form] => form
+ nil
+ args' = 'failed => ['LIST,:args]
+ quoteForm args'
expandReturn(x is ['%return,.,y]) ==
$FUNNAME = nil => systemErrorHere ['expandReturn,x]