101 lines
1.2 KiB
Mathematica
101 lines
1.2 KiB
Mathematica
|
// Matches
|
||
|
@interface I1 {
|
||
|
int ivar1;
|
||
|
}
|
||
|
@end
|
||
|
|
||
|
// Matches
|
||
|
@interface I2 : I1 {
|
||
|
float ivar2;
|
||
|
}
|
||
|
@end
|
||
|
|
||
|
// Ivar mismatch
|
||
|
@interface I3 {
|
||
|
int ivar1;
|
||
|
float ivar2;
|
||
|
}
|
||
|
@end
|
||
|
|
||
|
// Superclass mismatch
|
||
|
@interface I4 : I1 {
|
||
|
}
|
||
|
@end
|
||
|
|
||
|
// Methods match
|
||
|
@interface I5
|
||
|
+ (float)bar;
|
||
|
- (int)foo;
|
||
|
@end
|
||
|
|
||
|
// Method mismatch
|
||
|
@interface I6
|
||
|
+ (float)foo;
|
||
|
@end
|
||
|
|
||
|
// Method mismatch
|
||
|
@interface I7
|
||
|
- (int)foo;
|
||
|
+ (int)bar:(float)x;
|
||
|
@end
|
||
|
|
||
|
// Method mismatch
|
||
|
@interface I8
|
||
|
- (int)foo;
|
||
|
+ (int)bar:(float)x, ...;
|
||
|
@end
|
||
|
|
||
|
// Matching protocol
|
||
|
@protocol P0
|
||
|
+ (int)foo;
|
||
|
- (int)bar:(float)x;
|
||
|
@end
|
||
|
|
||
|
// Protocol with mismatching method
|
||
|
@protocol P1
|
||
|
+ (int)foo;
|
||
|
- (int)bar:(double)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
|
||
|
|
||
|
// Forward-declared interface
|
||
|
@class I10; @interface I12 @end
|
||
|
@interface I11
|
||
|
@end
|
||
|
|
||
|
// Forward-declared protocols
|
||
|
@protocol P3, P4;
|
||
|
@protocol P5
|
||
|
- (double)honk:(int)a;
|
||
|
@end
|
||
|
|
||
|
// Interface with implementation
|
||
|
@interface I13
|
||
|
@end
|
||
|
|
||
|
@implementation I13
|
||
|
@end
|
||
|
|
||
|
@interface I13b
|
||
|
@end
|
||
|
|
||
|
@implementation I13b
|
||
|
@end
|
||
|
|
||
|
// Implementation by itself
|
||
|
@implementation I14 : I12
|
||
|
@end
|
||
|
|
||
|
@implementation I15 : I11
|
||
|
@end
|