Comment #0 by kamm-removethis — 2009-05-10T06:52:16Z
Test case:
char[] foo(char[] source) { return ""; }
const v = "bar";
const r = foo(v);
Result:
Error: cannot evaluate foo(cast(char[])v) at compile time
This works in D2 because of changes to Cast in constfold.c. LDC backported the changes by adding this code from the D2 frontend:
if (e1->op == TOKstring)
{
if (tb->ty == Tarray && typeb->ty == Tarray &&
tb->nextOf()->size() == typeb->nextOf()->size())
{
return expType(to, e1);
}
}