d: Merge upstream dmd, druntime 4c18eed967, phobos d945686a4.
[official-gcc.git] / gcc / testsuite / gdc.test / fail_compilation / fail329.d
blob95aaaf445a9ffbd000b1d2c6cb16d52bb8a85ec8
1 /*
2 TEST_OUTPUT:
3 ---
4 fail_compilation/fail329.d(28): Error: variable `fail329.A.foo.__ensure.result` cannot modify result `result` in contract
5 ---
6 */
8 //import core.stdc.stdio;
10 /*******************************************/
12 class A
14 int x = 7;
16 int foo(int i)
19 //printf("A.foo.in %d\n", i);
20 assert(i == 2);
21 assert(x == 7);
22 //printf("A.foo.in pass\n");
24 out (result)
26 assert(result & 1);
27 assert(x == 7);
28 result++;
32 return i;
36 class B : A
38 override int foo(int i)
41 float f;
42 //printf("B.foo.in %d\n", i);
43 assert(i == 4);
44 assert(x == 7);
45 f = f + i;
47 out (result)
49 assert(result < 8);
50 assert(x == 7);
54 return i - 1;
58 void test1()
60 auto b = new B();
61 b.foo(2);
62 b.foo(4);