MATCH: Improve `A CMP 0 ? A : -A` set of patterns to use bitwise_equal_p.
[official-gcc.git] / gcc / testsuite / gdc.test / fail_compilation / fail_opover.d
blob2a62f53bbd3492d2ab732a782c69ad905b04d260
1 // REQUIRED_ARGS: -o-
3 /*
4 TEST_OUTPUT:
5 ---
6 fail_compilation/fail_opover.d(13): Error: no `[]` operator overload for type `object.Object`
7 fail_compilation/fail_opover.d(17): Error: no `[]` operator overload for type `TestS`
8 ---
9 */
10 void test1()
12 Object m;
13 m[] = error;
15 struct TestS {}
16 TestS s;
17 s[] = error;
21 TEST_OUTPUT:
22 ---
23 fail_compilation/fail_opover.d(46): Error: no `[]` operator overload for type `S`
24 fail_compilation/fail_opover.d(47): Error: no `[]` operator overload for type `S`
25 fail_compilation/fail_opover.d(48): Error: no `[]` operator overload for type `S`
26 fail_compilation/fail_opover.d(49): Error: no `[]` operator overload for type `S`
27 fail_compilation/fail_opover.d(50): Error: no `[]` operator overload for type `S`
28 fail_compilation/fail_opover.d(51): Error: no `[]` operator overload for type `S`
29 fail_compilation/fail_opover.d(52): Error: no `[]` operator overload for type `S`
30 fail_compilation/fail_opover.d(53): Error: no `[]` operator overload for type `S`
31 fail_compilation/fail_opover.d(54): Error: no `[]` operator overload for type `S`
32 fail_compilation/fail_opover.d(55): Error: no `[]` operator overload for type `S`
33 fail_compilation/fail_opover.d(56): Error: no `[]` operator overload for type `S`
34 fail_compilation/fail_opover.d(57): Error: no `[]` operator overload for type `S`
35 ---
37 void test2()
39 struct S
41 void func(int) {}
42 alias func this;
44 S s;
45 // The errors failing aliasthis access need to be gagged for better error messages.
46 s[]; // in ArrayExp::op_overload()
47 s[1]; // ditto
48 s[1..2]; // ditto
49 +s[]; // in UnaExp::op_overload()
50 +s[1]; // ditto
51 +s[1..2]; // ditto
52 s[] = 3; // in AssignExp::semantic()
53 s[1] = 3; // ditto
54 s[1..2] = 3; // ditto
55 s[] += 3; // in BinAssignExp::op_overload()
56 s[1] += 3; // ditto
57 s[1..2] += 3; // ditto