In code like this: import std.stdio;
struct foo { int val; static immutable bar = foo(1); this(int val) { this.val = 50; } } void main() { writeln(foo.bar.val); } The user-defined struct constructor is not called, because it's overridden by a built-in constructor which treats it like an initializer list. Shouldn't constructors in structs either generate errors/warnings, or work as they would appear to?