| /* |
| TEST_OUTPUT: |
| --- |
| fail_compilation/fail66.d(11): Error: constructor `fail66.C1.this` missing initializer for const field `y` |
| --- |
| */ |
| |
| class C1 |
| { |
| const int y; |
| this() {} |
| } |
| |
| /* |
| TEST_OUTPUT: |
| --- |
| fail_compilation/fail66.d(28): Error: cannot modify `const` expression `c.y` |
| --- |
| */ |
| class C2 |
| { |
| const int y; |
| this() { y = 7; } |
| } |
| void test2() |
| { |
| C2 c = new C2(); |
| c.y = 3; |
| } |
| |
| /* |
| TEST_OUTPUT: |
| --- |
| fail_compilation/fail66.d(43): Error: cannot modify `const` expression `this.y` |
| --- |
| */ |
| class C3 |
| { |
| const int y; |
| this() { y = 7; } |
| void foo() |
| { |
| y = 6; |
| } |
| } |
| |
| /* |
| TEST_OUTPUT: |
| --- |
| fail_compilation/fail66.d(59): Error: cannot modify `const` expression `x` |
| --- |
| */ |
| class C4 |
| { |
| static const int x; |
| static this() { x = 5; } |
| void foo() |
| { |
| x = 4; |
| } |
| } |
| |
| /* |
| TEST_OUTPUT: |
| --- |
| fail_compilation/fail66.d(73): Error: cannot modify `const` expression `z5` |
| --- |
| */ |
| const int z5; |
| static this() { z5 = 3; } |
| void test5() |
| { |
| z5 = 4; |
| } |
| |
| /* |
| TEST_OUTPUT: |
| --- |
| fail_compilation/fail66.d(89): Error: cannot modify `const` expression `c.y` |
| --- |
| */ |
| class C6 |
| { |
| const int y; |
| this() |
| { |
| C6 c = this; |
| y = 7; |
| c.y = 8; |
| } |
| } |