summaryrefslogtreecommitdiff
path: root/eval.c
diff options
context:
space:
mode:
authorPeter Mikkelsen <petermikkelsen10@gmail.com>2022-01-26 09:40:50 +0000
committerPeter Mikkelsen <petermikkelsen10@gmail.com>2022-01-26 09:40:50 +0000
commitbcaf7f25f42b21067a26895e097ada73765ba7d5 (patch)
treeccfb887cf08619c17b3afa3b517bfc3dcdfa18ad /eval.c
parent57a86f761605b6261d1045558c9cb7c83d723b60 (diff)
Implement a new "mixed" type which can be either of the three scalar types: int, float, rune. This allows scalar arrays with mixed scalar types
Diffstat (limited to 'eval.c')
-rw-r--r--eval.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/eval.c b/eval.c
index aff3f73..e33c3b5 100644
--- a/eval.c
+++ b/eval.c
@@ -164,9 +164,11 @@ strand(Datum left, Datum right)
result.shy = 0;
Array *leftarr = left.array->stranded ? fnSame(left.array) : fnEnclose(left.array);
Array *rightarr = right.array->stranded ? fnSame(right.array) : fnEnclose(right.array);
+ Array *tmp = fnCatenateFirst(leftarr, rightarr);
result.tag = ArrayTag;
- result.array = fnCatenateFirst(leftarr, rightarr);
+ result.array = simplifyarray(tmp);
result.array->stranded = 1;
+ freearray(tmp);
freearray(leftarr);
freearray(rightarr);
return result;