[Issue 17351] Static const array can't be evaluated at compile time when passed as ref argument

d-bugmail at puremagic.com d-bugmail at puremagic.com
Tue Sep 4 19:15:53 UTC 2018


https://issues.dlang.org/show_bug.cgi?id=17351

kinke at gmx.net changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |kinke at gmx.net

--- Comment #10 from kinke at gmx.net ---
I seem to have come across a variant of this as well. This works since v2.067:

int f1(ref const int p)    { return p; }
int f2(ref const int[2] p) { return p[0] + p[1]; }
void main()
{
    static immutable int[2] P = [ 0, 1 ];
    static assert(f1(P[0]) == 0);
    static assert(f2(P) == 1);
}

But only if there's the first static assert (!). Comment that out, and it'll
complain about 'static variable `P` cannot be read at compile time'. See
https://run.dlang.io/is/uyWPmm.

--


More information about the Digitalmars-d-bugs mailing list