2010-02-16 09:20:57 +08:00
|
|
|
// Matches
|
2010-02-17 08:34:30 +08:00
|
|
|
@interface I1 {
|
|
|
|
int ivar1;
|
|
|
|
}
|
2010-02-16 09:20:57 +08:00
|
|
|
@end
|
|
|
|
|
|
|
|
// Matches
|
2010-02-17 08:34:30 +08:00
|
|
|
@interface I2 : I1 {
|
|
|
|
float ivar2;
|
|
|
|
}
|
|
|
|
@end
|
|
|
|
|
|
|
|
// Ivar mismatch
|
|
|
|
@interface I3 {
|
|
|
|
int ivar1;
|
|
|
|
int ivar2;
|
|
|
|
}
|
|
|
|
@end
|
|
|
|
|
|
|
|
// Superclass mismatch
|
|
|
|
@interface I4 : I2 {
|
|
|
|
}
|
2010-02-16 09:20:57 +08:00
|
|
|
@end
|
2010-02-17 10:12:47 +08:00
|
|
|
|
|
|
|
// Methods match
|
|
|
|
@interface I5
|
|
|
|
- (int)foo;
|
|
|
|
+ (float)bar;
|
|
|
|
@end
|
|
|
|
|
|
|
|
// Method mismatch
|
|
|
|
@interface I6
|
|
|
|
- (int)foo;
|
|
|
|
+ (int)foo;
|
|
|
|
@end
|
|
|
|
|
|
|
|
// Method mismatch
|
|
|
|
@interface I7
|
|
|
|
- (int)foo;
|
|
|
|
+ (int)bar:(int)x;
|
|
|
|
@end
|
|
|
|
|
|
|
|
// Method mismatch
|
|
|
|
@interface I8
|
|
|
|
- (int)foo;
|
|
|
|
+ (int)bar:(float)x;
|
|
|
|
@end
|
2010-02-18 00:12:00 +08:00
|
|
|
|
|
|
|
// Matching protocol
|
|
|
|
@protocol P0
|
|
|
|
+ (int)foo;
|
|
|
|
- (int)bar:(float)x;
|
|
|
|
@end
|
|
|
|
|
|
|
|
// Protocol with mismatching method
|
|
|
|
@protocol P1
|
|
|
|
+ (int)foo;
|
|
|
|
- (int)bar:(float)x;
|
|
|
|
@end
|
|
|
|
|
|
|
|
// Interface with protocol
|
|
|
|
@interface I9 <P0>
|
|
|
|
+ (int)foo;
|
|
|
|
- (int)bar:(float)x;
|
|
|
|
@end
|
|
|
|
|
|
|
|
// Protocol with protocol
|
|
|
|
@protocol P2 <P0>
|
|
|
|
- (float)wibble:(int)a1 second:(int)a2;
|
|
|
|
@end
|
2010-02-18 10:04:09 +08:00
|
|
|
|
|
|
|
// Forward-declared interfaces
|
|
|
|
@class I10, I11;
|
|
|
|
@interface I12
|
|
|
|
@end
|
2010-02-18 10:12:22 +08:00
|
|
|
|
|
|
|
// Forward-declared protocols
|
|
|
|
@protocol P3, P5;
|
|
|
|
@protocol P4
|
|
|
|
- (double)honk:(int)a;
|
|
|
|
@end
|