From 3efe9bdafb88a02171f13c7be96192e554a15cb6 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Henrik=20Grubbstr=C3=B6m=20=28Grubba=29?=
 <grubba@grubba.org>
Date: Thu, 27 Jun 2024 17:25:28 +0200
Subject: [PATCH] EFUNs: Fix return type for indices() on arrays and strings.

---
 src/builtin_functions.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/src/builtin_functions.c b/src/builtin_functions.c
index b21e6e3bd0..8e836d045c 100644
--- a/src/builtin_functions.c
+++ b/src/builtin_functions.c
@@ -10380,10 +10380,12 @@ void init_builtin_efuns(void)
   ADD_EFUN("hash_value",f_hash_value,tFunc(tMix,tIntPos),OPT_TRY_OPTIMIZE);
 
   ADD_EFUN("indices",f_indices,
-	   tOr6(tFunc(tLArr(tSetvar(1, tIntPos), tMix),tArr(tVar(1))),
+           tOr6(tFunc(tLArr(tSetvar(1, tIntPos), tMix),
+                      tLArr(tVar(1), tRangeInt(tZero, tDecInt(tVar(1))))),
 		tFunc(tMap(tSetvar(1, tMix), tMix), tArr(tVar(1))),
 		tFunc(tSet(tSetvar(1, tMix)), tArr(tVar(1))),
-		tFunc(tLStr(tSetvar(1, tIntPos), tInt), tArr(tVar(1))),
+                tFunc(tLStr(tSetvar(1, tIntPos), tInt),
+                      tLArr(tVar(1), tRangeInt(tZero, tDecInt(tVar(1))))),
 		tFunc(tPrg(tObj), tArr(tStr)),
 		tFuncArg(tSetvar(2, tObj),
 			 tOr(tFindLFun(tVar(2), "_indices"),
-- 
GitLab