1*67e74705SXin Li// RUN: %clang_cc1 -fsyntax-only -verify %s 2*67e74705SXin Li// radar 7509234 3*67e74705SXin Li 4*67e74705SXin Li@protocol Foo 5*67e74705SXin Li@property (readonly, copy) id foos; 6*67e74705SXin Li@end 7*67e74705SXin Li 8*67e74705SXin Li@interface Bar <Foo> { 9*67e74705SXin Li} 10*67e74705SXin Li 11*67e74705SXin Li@end 12*67e74705SXin Li 13*67e74705SXin Li@interface Baz <Foo> { 14*67e74705SXin Li} 15*67e74705SXin Li@end 16*67e74705SXin Li 17*67e74705SXin Li@interface Bar () 18*67e74705SXin Li@property (readwrite, copy) id foos; 19*67e74705SXin Li@end 20*67e74705SXin Li 21*67e74705SXin Li@interface Baz () 22*67e74705SXin Li@property (readwrite, copy) id foos; 23*67e74705SXin Li@end 24*67e74705SXin Li 25*67e74705SXin Li 26*67e74705SXin Li// rdar://10142679 27*67e74705SXin Li@class NSString; 28*67e74705SXin Li 29*67e74705SXin Litypedef struct { 30*67e74705SXin Li float width; 31*67e74705SXin Li float length; 32*67e74705SXin Li} NSRect; 33*67e74705SXin Li 34*67e74705SXin Li@interface MyClass { 35*67e74705SXin Li} 36*67e74705SXin Li@property (readonly) NSRect foo; // expected-note {{property declared here}} 37*67e74705SXin Li@property (readonly, strong) NSString *bar; // expected-note {{property declared here}} 38*67e74705SXin Li@end 39*67e74705SXin Li 40*67e74705SXin Li@interface MyClass () 41*67e74705SXin Li@property (readwrite) NSString *foo; // expected-error {{type of property 'NSString *' in class extension does not match property type in primary class}} 42*67e74705SXin Li@property (readwrite, strong) NSRect bar; // expected-error {{type of property 'NSRect' in class extension does not match property type in primary class}} 43*67e74705SXin Li@end 44*67e74705SXin Li 45*67e74705SXin Li// rdar://10655530 46*67e74705SXin Listruct S; 47*67e74705SXin Listruct S1; 48*67e74705SXin Li@interface STAdKitContext 49*67e74705SXin Li@property (nonatomic, readonly, assign) struct evhttp_request *httpRequest; 50*67e74705SXin Li@property (nonatomic, readonly, assign) struct S *httpRequest2; 51*67e74705SXin Li@property (nonatomic, readonly, assign) struct S1 *httpRequest3; 52*67e74705SXin Li@property (nonatomic, readonly, assign) struct S2 *httpRequest4; 53*67e74705SXin Li@end 54*67e74705SXin Li 55*67e74705SXin Listruct evhttp_request; 56*67e74705SXin Listruct S1; 57*67e74705SXin Li 58*67e74705SXin Li@interface STAdKitContext() 59*67e74705SXin Li@property (nonatomic, readwrite, assign) struct evhttp_request *httpRequest; 60*67e74705SXin Li@property (nonatomic, readwrite, assign) struct S *httpRequest2; 61*67e74705SXin Li@property (nonatomic, readwrite, assign) struct S1 *httpRequest3; 62*67e74705SXin Li@property (nonatomic, readwrite, assign) struct S2 *httpRequest4; 63*67e74705SXin Li@end 64*67e74705SXin Li 65*67e74705SXin Li// rdar://15859862 66*67e74705SXin Li@protocol ADCameraJSO_Bindings 67*67e74705SXin Li@property (nonatomic, readonly) NSString *currentPictureURI; 68*67e74705SXin Li@end 69*67e74705SXin Li 70*67e74705SXin Li@interface ADCameraJSO 71*67e74705SXin Li@end 72*67e74705SXin Li 73*67e74705SXin Li@interface ADCameraJSO() <ADCameraJSO_Bindings> 74*67e74705SXin Li@property (nonatomic, copy) NSString *currentPictureURI; 75*67e74705SXin Li@end 76