summaryrefslogtreecommitdiff
path: root/eval.c
diff options
context:
space:
mode:
Diffstat (limited to 'eval.c')
-rw-r--r--eval.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/eval.c b/eval.c
index e7b0a13..b3efc05 100644
--- a/eval.c
+++ b/eval.c
@@ -112,6 +112,12 @@ retry:
if(stmt->toks[offset+1].tag == ArrayTag)
freearray(stmt->toks[offset+1].array);
+ if(new.tag == ArrayTag){
+ Array *tmp = new.array;
+ new.array = simplifyarray(tmp);
+ freearray(tmp);
+ }
+
stmt->toks[offset] = new;
for(int i = offset+1; i < stmt->ntoks-1; i++)
stmt->toks[i] = stmt->toks[i+1];