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