// RUN: %clang_cc1 -fsyntax-only -verify %s

@interface A
 -(int) x;
@property (readonly) int x;
@property int ok;
@end

@interface B
 -(void) setOk:(int)arg;
 -(int) x;
 -(int) ok;
@end

void f0(A *a, B* b) {
  a.x = 10;  // expected-error {{assignment to readonly property}}
  a.ok = 20;
  b.x = 10;  // expected-error {{no setter method 'setX:' for assignment to property}}
  b.ok = 20;
}

typedef struct {
  int i1, i2;
} NSRect;

NSRect NSMakeRect();

@interface NSWindow 
{
    NSRect _frame;
}
- (NSRect)frame;
@end

@interface NSWindow (Category)
-(void)methodToMakeClangCrash;
@end

@implementation NSWindow (Category)
-(void)methodToMakeClangCrash
{
 self.frame =  NSMakeRect(); // expected-error {{no setter method 'setFrame:' for assignment to property}}
}
@end
