| /* |
| 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(); |
| } |