91 lines
1.1 KiB
Objective-C
91 lines
1.1 KiB
Objective-C
@__experimental_modules_import redecl_merge_top;
|
|
|
|
@class A;
|
|
|
|
@class A;
|
|
|
|
@interface B
|
|
+ (B*) create_a_B;
|
|
@end
|
|
|
|
@class A;
|
|
|
|
@protocol P1;
|
|
@protocol P2
|
|
- (void)protoMethod2;
|
|
@end
|
|
|
|
struct S1;
|
|
struct S2 {
|
|
int field;
|
|
};
|
|
|
|
struct S1 *produce_S1(void);
|
|
void consume_S2(struct S2*);
|
|
|
|
// Test declarations in different modules with no common initial
|
|
// declaration.
|
|
@class C;
|
|
void accept_a_C(C*);
|
|
|
|
@class C2;
|
|
void accept_a_C2(C2*);
|
|
|
|
@class C3;
|
|
void accept_a_C3(C3*);
|
|
@class C3;
|
|
|
|
@class C4;
|
|
|
|
@class Explicit;
|
|
|
|
int *explicit_func(void);
|
|
|
|
struct explicit_struct;
|
|
|
|
@protocol P3, P4;
|
|
|
|
@protocol P3;
|
|
|
|
struct S3;
|
|
struct S3;
|
|
struct S4 {
|
|
int field;
|
|
};
|
|
|
|
struct S3 *produce_S3(void);
|
|
void consume_S4(struct S4*);
|
|
|
|
typedef int T1;
|
|
typedef float T2;
|
|
|
|
int func0(int);
|
|
int func1(int);
|
|
int func2(int);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Spacing matters!
|
|
extern int var1;
|
|
extern float var2;
|
|
|
|
extern double var3;
|
|
|
|
#ifdef __cplusplus
|
|
template<typename T> class Vector;
|
|
|
|
template<typename T> class Vector;
|
|
#endif
|
|
|
|
// Make sure this doesn't introduce an ambiguity-creating 'id' at the
|
|
// top level.
|
|
typedef void funcptr_with_id(int id);
|
|
|