simendsjo: > Why is this a bug?
Currently it isn't. But I (and few other people) have asked for it to be a bug, because it sometimes leads to not catching a programmer mistake. > Static means it's only one instance (per thread), > right? The compiler cannot know if you meant to fill the entire array or > if you meant something like this > > static string[2] szFormat = ["%s, %s"]; > > void main() { > szFormat[1] = "%d"; > assert(szFormat == ["%s, %s", "%d"]); > } The idea in the proposal on Bugzilla is that a literal like this is a bug: static string[2] szFormat = ["%s, %s"]; If you want to fill some space later there is this syntax that explicitly tells the compiler some items are left undefined (Python Zen rule: explicit is better than implicit): static string[2] szFormat = ["%s, %s", ...]; There is also this syntax to auto determination of the fixed length: static string[$] szFormat = ["%s, %s"]; // length == 1 Bye, bearophile