// RUN: %clang_cc1 -fsyntax-only -verify %s // radar 7509234 @protocol Foo @property (readonly, copy) id foos; @end @interface Bar <Foo> { } @end @interface Baz <Foo> { } @end @interface Bar () @property (readwrite, copy) id foos; @end @interface Baz () @property (readwrite, copy) id foos; @end // rdar://10142679 @class NSString; typedef struct { float width; float length; } NSRect; @interface MyClass { } @property (readonly) NSRect foo; // expected-note {{property declared here}} @property (readonly, strong) NSString *bar; // expected-note {{property declared here}} @end @interface MyClass () @property (readwrite) NSString *foo; // expected-error {{type of property 'NSString *' in class extension does not match property type in primary class}} @property (readwrite, strong) NSRect bar; // expected-error {{type of property 'NSRect' in class extension does not match property type in primary class}} @end // rdar://10655530 struct S; struct S1; @interface STAdKitContext @property (nonatomic, readonly, assign) struct evhttp_request *httpRequest; @property (nonatomic, readonly, assign) struct S *httpRequest2; @property (nonatomic, readonly, assign) struct S1 *httpRequest3; @property (nonatomic, readonly, assign) struct S2 *httpRequest4; @end struct evhttp_request; struct S1; @interface STAdKitContext() @property (nonatomic, readwrite, assign) struct evhttp_request *httpRequest; @property (nonatomic, readwrite, assign) struct S *httpRequest2; @property (nonatomic, readwrite, assign) struct S1 *httpRequest3; @property (nonatomic, readwrite, assign) struct S2 *httpRequest4; @end