From bcaf7f25f42b21067a26895e097ada73765ba7d5 Mon Sep 17 00:00:00 2001 From: Peter Mikkelsen Date: Wed, 26 Jan 2022 09:40:50 +0000 Subject: 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 --- eval.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'eval.c') 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; -- cgit v1.2.3