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