immutableが新設されてからだいぶ経ってしまったが今更ながら試してみた.
import std.stdio; void main() { invariant(int) a = 10; // deprecated? immutable(int) b = 10; } class A { /+ error immutable(){ }+/ invariant(){ } }
dmd 2.021ではinvariant(){}の()は必要だけど,DbCのinvariantとstorage classのinvariantを分離して後者をimmutableにすることで,追々invariant{}に戻すつもりなのではなかろうか.
今からでもimmutableを使っていってもいいかも.