• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 @__experimental_modules_import redecl_merge_top;
2 
3 @class A;
4 
5 @class A;
6 
7 @interface B
8 + (B*) create_a_B;
9 @end
10 
11 @class A;
12 
13 @protocol P1;
14 @protocol P2
15 - (void)protoMethod2;
16 @end
17 
18 struct S1;
19 struct S2 {
20   int field;
21 };
22 
23 struct S1 *produce_S1(void);
24 void consume_S2(struct S2*);
25 
26 // Test declarations in different modules with no common initial
27 // declaration.
28 @class C;
29 void accept_a_C(C*);
30 
31 @class C2;
32 void accept_a_C2(C2*);
33 
34 @class C3;
35 void accept_a_C3(C3*);
36 @class C3;
37 
38 @class C4;
39 
40 @class Explicit;
41 
42 int *explicit_func(void);
43 
44 struct explicit_struct;
45 
46 @protocol P3, P4;
47 
48 @protocol P3;
49 
50 struct S3;
51 struct S3;
52 struct S4 {
53   int field;
54 };
55 
56 struct S3 *produce_S3(void);
57 void consume_S4(struct S4*);
58 
59 typedef int T1;
60 typedef float T2;
61 
62 int func0(int);
63 int func1(int);
64 int func2(int);
65 
66 
67 
68 
69 
70 
71 
72 
73 
74 
75 // Spacing matters!
76 extern int var1;
77 extern float var2;
78 
79 extern double var3;
80 
81 #ifdef __cplusplus
82 template<typename T> class Vector;
83 
84 template<typename T> class Vector;
85 #endif
86 
87 // Make sure this doesn't introduce an ambiguity-creating 'id' at the
88 // top level.
89 typedef void funcptr_with_id(int id);
90 
91