1 // RUN: %clang_cc1 -fsyntax-only -verify %s
3 typedef signed char BOOL;
4 @protocol NSObject - (BOOL)isEqual:(id)object; @end
6 @interface NSObject <NSObject> {} @end
8 @interface _NSServicesInContextMenu : NSObject {
10 NSObject *_appleEventDescriptor;
13 @property (retain, nonatomic) id requestor;
14 @property (retain, nonatomic) id appleEventDescriptor;
18 @implementation _NSServicesInContextMenu
20 @synthesize requestor = _requestor, appleEventDescriptor = _appleEventDescriptor;
27 - (NSString *)stringValue;
30 @interface MyClass : NSObject {
33 @property (readwrite, retain) id<MyProtocol> myIvar;
36 @implementation MyClass
37 @synthesize myIvar = _myIvar;
41 @interface BadPropClass
46 @property (readonly) int; // expected-warning {{declaration does not declare anything}}
47 @property (readonly) ; // expected-error {{type name requires a specifier or qualifier}} \
48 expected-warning {{declaration does not declare anything}}
49 @property (readonly) int : 4; // expected-error {{property requires fields to be named}}
52 // test parser recovery: rdar://6254579
53 @property ( // expected-note {{to match this '('}}
54 readonly getter=isAwesome) // expected-error {{error: expected ')'}}
57 @property (readonlyx) // expected-error {{unknown property attribute 'readonlyx'}}
60 @property ( // expected-note {{to match this '('}}
61 +) // expected-error {{error: expected ')'}}
67 @protocol PVImageViewProtocol
68 @property int inEyeDropperMode;
72 @property int inEyeDropperMode;
75 @interface PVAdjustColor @end
77 @implementation PVAdjustColor
80 id <PVImageViewProtocol> view;
83 c.inEyeDropperMode = 1;
84 view.inEyeDropperMode = 1;
89 @interface MyStyleIntf
94 @property(readonly) int myStyle;
96 - (float)setMyStyle:(int)style;
100 @class MDAInstance; // expected-note {{forward class is declared here}}
102 @interface MDATestDocument
103 @property(retain) MDAInstance *instance;
106 id f0(MDATestDocument *d) {
107 return d.instance.path; // expected-error {{property 'path' cannot be found in forward class object 'MDAInstance *'}}