/* TEST_OUTPUT: --- fail_compilation/fail180.d(23): Error: cannot modify `this.x` in `const` function fail_compilation/fail180.d(24): Error: cannot modify `this.x` in `const` function fail_compilation/fail180.d(38): Error: cannot modify `this.x` in `const` function fail_compilation/fail180.d(39): Error: cannot modify `this.x` in `const` function fail_compilation/fail180.d(50): Error: variable `fail180.main.t` cannot be `final`, perhaps you meant `const`? fail_compilation/fail180.d(62): Error: variable `fail180.test.d` cannot be `final`, perhaps you meant `const`? --- */ struct S59 { int x; void foo() { x = 3; } const void bar() { x = 4; this.x = 5; } } class C { int x; void foo() { x = 3; } const void bar() { x = 4; this.x = 5; } } void main() { S59 s; s.foo(); s.bar(); final S59 t; t.foo(); t.bar(); } void test() { C c = new C; c.foo(); c.bar(); final C d = new C; d.foo(); d.bar(); }