Home | History | Annotate | Download | only in Inputs
      1 @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 x) { return x; }
     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 // Make sure this doesn't introduce an ambiguity-creating 'id' at the
     82 // top level.
     83 typedef void funcptr_with_id(int id);
     84 
     85 // A class that is declared in the 'bottom' module, then loaded from
     86 // one of the modules it depends on.
     87 @interface DeclaredThenLoaded
     88 - declaredThenLoadedMethod;
     89 @end
     90 
     91 @class DeclaredThenLoaded;
     92 
     93 void eventually_noreturn2(void);
     94