d: Merge upstream dmd, druntime 4c18eed967, phobos d945686a4.
[official-gcc.git] / gcc / testsuite / gdc.test / fail_compilation / fail18143.d
blob28df93a1997588d5e53c70eabaff112f2b72ce99
1 /*
2 TEST_OUTPUT:
3 ---
4 fail_compilation/fail18143.d(20): Error: variable `fail18143.S.a` cannot modify parameter `this` in contract
5 fail_compilation/fail18143.d(21): Error: variable `fail18143.S.a` cannot modify parameter `this` in contract
6 fail_compilation/fail18143.d(25): Error: variable `fail18143.S.a` cannot modify parameter `this` in contract
7 fail_compilation/fail18143.d(26): Error: variable `fail18143.S.a` cannot modify parameter `this` in contract
8 fail_compilation/fail18143.d(35): Error: variable `fail18143.C.a` cannot modify parameter `this` in contract
9 fail_compilation/fail18143.d(36): Error: variable `fail18143.C.a` cannot modify parameter `this` in contract
10 fail_compilation/fail18143.d(40): Error: variable `fail18143.C.a` cannot modify parameter `this` in contract
11 fail_compilation/fail18143.d(41): Error: variable `fail18143.C.a` cannot modify parameter `this` in contract
12 ---
15 struct S
17 int a;
19 this(int n)
20 in { a = n; } // error, modifying this.a in contract
21 out { a = n; } // error, modifying this.a in contract
22 do { }
24 void foo(int n)
25 in { a = n; } // error, modifying this.a in contract
26 out { a = n; } // error, modifying this.a in contract
27 do { }
30 class C
32 int a;
34 this(int n)
35 in { a = n; } // error, modifying this.a in contract
36 out { a = n; } // error, modifying this.a in contract
37 do { }
39 void foo(int n)
40 in { a = n; } // error, modifying this.a in contract
41 out { a = n; } // error, modifying this.a in contract
42 do { }