]> git.ipfire.org Git - thirdparty/gcc.git/blob - gcc/testsuite/gdc.test/fail_compilation/fail9414c.d
d: Import dmd b8384668f, druntime e6caaab9, phobos 5ab9ad256 (v2.098.0-beta.1)
[thirdparty/gcc.git] / gcc / testsuite / gdc.test / fail_compilation / fail9414c.d
1 /*
2 TEST_OUTPUT:
3 ---
4 fail_compilation/fail9414c.d(47): Error: variable `fail9414c.C.foo.x` cannot modify parameter `x` in contract
5 fail_compilation/fail9414c.d(34): Error: variable `fail9414c.C.foo.x` cannot modify parameter `x` in contract
6 fail_compilation/fail9414c.d(35): Error: variable `fail9414c.C.foo.bar.y` cannot modify parameter `y` in contract
7 fail_compilation/fail9414c.d(40): Error: variable `fail9414c.C.foo.x` cannot modify parameter `x` in contract
8 fail_compilation/fail9414c.d(41): Error: variable `fail9414c.C.foo.bar.y` cannot modify parameter `y` in contract
9 fail_compilation/fail9414c.d(42): Error: variable `fail9414c.C.foo.bar.s` cannot modify result `s` in contract
10 fail_compilation/fail9414c.d(52): Error: variable `fail9414c.C.foo.x` cannot modify parameter `x` in contract
11 fail_compilation/fail9414c.d(75): Error: variable `fail9414c.C.foo.x` cannot modify parameter `x` in contract
12 fail_compilation/fail9414c.d(76): Error: variable `fail9414c.C.foo.r` cannot modify result `r` in contract
13 fail_compilation/fail9414c.d(60): Error: variable `fail9414c.C.foo.x` cannot modify parameter `x` in contract
14 fail_compilation/fail9414c.d(61): Error: variable `fail9414c.C.foo.r` cannot modify result `r` in contract
15 fail_compilation/fail9414c.d(62): Error: variable `fail9414c.C.foo.baz.y` cannot modify parameter `y` in contract
16 fail_compilation/fail9414c.d(67): Error: variable `fail9414c.C.foo.x` cannot modify parameter `x` in contract
17 fail_compilation/fail9414c.d(68): Error: variable `fail9414c.C.foo.r` cannot modify result `r` in contract
18 fail_compilation/fail9414c.d(69): Error: variable `fail9414c.C.foo.baz.y` cannot modify parameter `y` in contract
19 fail_compilation/fail9414c.d(70): Error: variable `fail9414c.C.foo.baz.s` cannot modify result `s` in contract
20 fail_compilation/fail9414c.d(81): Error: variable `fail9414c.C.foo.x` cannot modify parameter `x` in contract
21 fail_compilation/fail9414c.d(82): Error: variable `fail9414c.C.foo.r` cannot modify result `r` in contract
22 ---
23 */
24
25 class C
26 {
27 private int foo(int x)
28 in
29 {
30 int a;
31 int bar(int y)
32 in
33 {
34 x = 10; // err
35 y = 10; // err
36 a = 1; // OK
37 }
38 out(s)
39 {
40 x = 10; // err
41 y = 10; // err
42 s = 10; // err
43 a = 1; // OK
44 }
45 do
46 {
47 x = 10; // err
48 y = 1; // OK
49 a = 1; // OK
50 return 2;
51 }
52 x = 10; // err
53 }
54 out(r)
55 {
56 int a;
57 int baz(int y)
58 in
59 {
60 x = 10; // err
61 r = 10; // err
62 y = 10; // err
63 a = 1; // OK
64 }
65 out(s)
66 {
67 x = 10; // err
68 r = 10; // err
69 y = 10; // err
70 s = 10; // err
71 a = 1; // OK
72 }
73 do
74 {
75 x = 10; // err
76 r = 10; // err
77 y = 1; // OK
78 a = 1; // OK
79 return 2;
80 }
81 x = 10; // err
82 r = 10; // err
83 }
84 do
85 {
86 return 1;
87 }
88 }