1// Matching properties
2@interface I1 {
3}
4- (int)getProp2;
5- (void)setProp2:(int)value;
6@property (readonly) int Prop1;
7@property (getter = getProp2, setter = setProp2:) int Prop2;
8@end
9
10// Mismatched property
11@interface I2
12@property (readonly) int Prop1;
13@end
14
15// Properties with implementations
16@interface I3 {
17  int ivar1;
18  int ivar2;
19  int ivar3;
20  int Prop4;
21}
22@property int Prop1;
23@property int Prop2;
24@property int Prop3;
25@property int Prop4;
26@end
27
28@implementation I3
29@synthesize Prop2 = ivar2;
30@synthesize Prop1 = ivar1;
31@synthesize Prop3 = ivar3;
32@synthesize Prop4 = Prop4;
33@end
34