void test25()
{
char[6] cstr = "123456"c;
auto str1 = cast(wchar[3])(cstr);
writefln("str1: ", (cast(char[])str1).length , " : ", (cast(char[])str1));
assert(cast(char[])str1 == "123456"c);
auto str2 = cast(wchar[3])("789abc"c);
writefln("str2: ", (cast(char[])str2).length , " : ", (cast(char[])str2));
assert(cast(char[])str2 == "789abc"c);
auto str3 = cast(wchar[3])("defghi");
writefln("str3: ", (cast(char[])str3).length , " : ", (cast(char[])str3));
assert(cast(char[])str3 == "d\000e\000f\000"c);
}
I'm not sure we should allow the cast from "789abc"c to wchar[3].
I think if you want this behavior you should have to do `cast(wchar[3])cast(char[6])"789abc"`.