16895, “e-kayrakli”, “Indexing a param string/bytes with a param int should return a param”, “2021-01-04T18:59:11Z”
param s = "chapel";
param i = 1;
param ss = s[i]; // this is not a compile time operation
compilerWarning(ss);
The above snippet should work but it doesn’t today. On master similar issue happens when indexing literals like ("chapel")[1]
. https://github.com/chapel-lang/chapel/pull/16879 will make "chapel"[1]
parsable, but it’ll still remain an execution time operation.
It’d be nice to make these operations at compile time. One question is whether we can make similar slicing a param operation, but maybe we need to figure out param ranges before we think about that.