Consider following code: immutable struct Foo { this(int) { } void bar() { } } int main(in string[] args) { auto foo = Foo(1); foo.bar(); } This will not work out, because `bar()` is immutable, but `foo` is not. If constructor is declared as `this(int) immutable {}`, it will work again. Default no-arg constructor for immutable structs is already immutable, so shouldn't other constructor also be considered immutable implicitly, much like methods are?
Old bug, probably fixed as a byproduct of some other contribution. Works for me at least.