| // RUN: %clang_cc1 -fsyntax-only -verify -Wno-objc-root-class %s |
| |
| typedef signed char BOOL; |
| @protocol NSObject - (BOOL)isEqual:(id)object; @end |
| |
| @interface NSObject <NSObject> {} @end |
| |
| @interface _NSServicesInContextMenu : NSObject { |
| id _requestor; |
| NSObject *_appleEventDescriptor; |
| } |
| |
| @property (retain, nonatomic) id requestor; |
| @property (retain, nonatomic) id appleEventDescriptor; |
| |
| @end |
| |
| @implementation _NSServicesInContextMenu |
| |
| @synthesize requestor = _requestor, appleEventDescriptor = _appleEventDescriptor; |
| |
| @end |
| |
| @class NSString; |
| |
| @protocol MyProtocol |
| - (NSString *)stringValue; |
| @end |
| |
| @interface MyClass : NSObject { |
| id _myIvar; |
| } |
| @property (readwrite, retain) id<MyProtocol> myIvar; |
| @end |
| |
| @implementation MyClass |
| @synthesize myIvar = _myIvar; |
| @end |
| |
| |
| @interface BadPropClass |
| { |
| int _awesome; |
| } |
| |
| @property (readonly) int; // expected-warning {{declaration does not declare anything}} |
| @property (readonly) ; // expected-error {{type name requires a specifier or qualifier}} |
| @property (readonly) int : 4; // expected-error {{property requires fields to be named}} |
| |
| |
| // test parser recovery: rdar://6254579 |
| @property ( // expected-note {{to match this '('}} |
| readonly getter=isAwesome) // expected-error {{expected ')'}} |
| |
| int _awesome; |
| @property (readonlyx) // expected-error {{unknown property attribute 'readonlyx'}} |
| int _awesome2; |
| |
| @property ( // expected-note {{to match this '('}} |
| +) // expected-error {{expected ')'}} |
| |
| int _awesome3; |
| |
| @end |
| |
| @protocol PVImageViewProtocol |
| @property int inEyeDropperMode; |
| @end |
| |
| @interface Cls |
| @property int inEyeDropperMode; |
| @end |
| |
| @interface PVAdjustColor @end |
| |
| @implementation PVAdjustColor |
| |
| - xx { |
| id <PVImageViewProtocol> view; |
| Cls *c; |
| |
| c.inEyeDropperMode = 1; |
| view.inEyeDropperMode = 1; |
| } |
| @end |
| |
| // radar 7427072 |
| @interface MyStyleIntf |
| { |
| int _myStyle; |
| } |
| |
| @property(readonly) int myStyle; |
| |
| - (float)setMyStyle:(int)style; |
| @end |
| |
| // rdar://8774513 |
| @class MDAInstance; // expected-note {{forward declaration of class here}} |
| |
| @interface MDATestDocument |
| @property(retain) MDAInstance *instance; |
| @end |
| |
| id f0(MDATestDocument *d) { |
| return d.instance.path; // expected-error {{property 'path' cannot be found in forward class object 'MDAInstance'}} |
| } |
| |
| // rdar://20469452 |
| @interface UIView @end |
| |
| @interface FRFakeBannerView : UIView |
| @end |
| |
| @interface FRAdCollectionViewCell |
| @property (nonatomic, weak, readonly) UIView *bannerView; |
| @end |
| |
| @interface FRAdCollectionViewCell () |
| |
| @property (nonatomic, weak, readwrite) FRFakeBannerView *bannerView; |
| |
| @end |