Prevent foo.bar = {} when bar is a flexible array member.

This commit is contained in:
Christoffer Lerno
2025-09-29 01:59:38 +02:00
parent da67cd4eb0
commit cb2d0e798e
4 changed files with 38 additions and 0 deletions

View File

@@ -0,0 +1,25 @@
module main;
struct OwnedString
{
usz len;
char[*] data;
}
fn void test1()
{
OwnedString owned;
owned.data = {}; // #error: You can't assign to a flexible array member
}
fn void test2()
{
$typefrom(OwnedString.data.typeid) x = 1; // #error: 'char[*]' has unknown size, and
}
fn int main()
{
OwnedString owned;
owned.data[0] = 1;
return 0;
}