In DMD 2.053 this code compiles with no errors, because "invariant" is an alias for "immutable" still: void main() { invariant x = 10; } But I suggest to remove this alias soon because it causes me some troubles regarding Class/struct/enum invariants. DMD v2.053 compiles this with no errors: struct Foo { invariant {} } struct Bar { invariant } class CFoo { invariant {} } class CBar { invariant } void main() {} See bug 4325 for more info.
In 2.057, Using 'invariant' keyword as a storage class has been deprecated. https://github.com/D-Programming-Language/dmd/pull/477 https://github.com/D-Programming-Language/dmd/commit/67411b9968e5454026ea3552e1228d05245859c8