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