mirror of
https://github.com/dlang/dmd.git
synced 2025-04-26 05:00:16 +03:00
65 lines
1 KiB
D
65 lines
1 KiB
D
/*
|
|
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();
|
|
}
|