// Matching properties
@interface I1 {
}
- (int)getProp2;
- (void)setProp2:(int)value;
@property (readonly) int Prop1;
@property (getter = getProp2, setter = setProp2:) int Prop2;
@end

// Mismatched property
@interface I2
@property (readonly) int Prop1;
@end

// Properties with implementations
@interface I3 {
  int ivar1;
  int ivar2;
  int ivar3;
  int Prop4;
}
@property int Prop1;
@property int Prop2;
@property int Prop3;
@property int Prop4;
@end

@implementation I3
@synthesize Prop2 = ivar2;
@synthesize Prop1 = ivar1;
@synthesize Prop3 = ivar3;
@synthesize Prop4 = Prop4;
@end
