]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - test/ASTMerge/interface/Inputs/interface2.m
Vendor import of clang trunk r290819:
[FreeBSD/FreeBSD.git] / test / ASTMerge / interface / Inputs / interface2.m
1 // Matches
2 @interface I1 {
3   int ivar1;
4 }
5 @end
6
7 // Matches
8 @interface I2 : I1 {
9   float ivar2;
10 }
11 @end
12
13 // Ivar mismatch
14 @interface I3 {
15   int ivar1;
16   float ivar2;
17 }
18 @end
19
20 // Superclass mismatch
21 @interface I4 : I1 {
22 }
23 @end
24
25 // Methods match
26 @interface I5
27 + (float)bar;
28 - (int)foo;
29 @end
30
31 // Method mismatch
32 @interface I6
33 + (float)foo;
34 @end
35
36 // Method mismatch
37 @interface I7
38 - (int)foo;
39 + (int)bar:(float)x;
40 @end
41
42 // Method mismatch
43 @interface I8
44 - (int)foo;
45 + (int)bar:(float)x, ...;
46 @end
47
48 // Matching protocol
49 @protocol P0
50 + (int)foo;
51 - (int)bar:(float)x;
52 @end
53
54 // Protocol with mismatching method
55 @protocol P1
56 + (int)foo;
57 - (int)bar:(double)x;
58 @end
59
60 // Interface with protocol
61 @interface I9 <P0>
62 + (int)foo;
63 - (int)bar:(float)x;
64 @end
65
66 // Protocol with protocol
67 @protocol P2 <P0>
68 - (float)wibble:(int)a1 second:(int)a2;
69 @end
70
71 // Forward-declared interface
72 @class I10; @interface I12 @end
73 @interface I11
74 @end
75
76 // Forward-declared protocols
77 @protocol P3, P4;
78 @protocol P5
79 - (double)honk:(int)a;
80 @end
81
82 // Interface with implementation
83 @interface I13
84 @end
85
86 @implementation I13
87 @end
88
89 @interface I13b
90 @end
91
92 @implementation I13b
93 @end
94
95 // Implementation by itself
96 @implementation I14 : I12
97 @end
98
99 @implementation I15 : I11
100 @end