blob: e1ae39bd2942a30326c4f2e9282c04a59bbdf0e4 [file] [log] [blame]
Daniel Dunbard7d5f022009-03-24 02:24:46 +00001// RUN: clang-cc -fsyntax-only -verify %s
Fariborz Jahanianb16308f2008-11-26 20:33:54 +00002
3@interface ReadOnly
4{
5 id _object;
6 id _object1;
7}
Fariborz Jahanian567c8df2008-12-06 01:12:43 +00008@property(readonly) id object;
Fariborz Jahaniana6f14e12009-11-02 22:45:15 +00009@property(readwrite, assign) id object1; // expected-note {{property declared here}}
Fariborz Jahanianb16308f2008-11-26 20:33:54 +000010@end
11
12@interface ReadOnly ()
Fariborz Jahanian9bfb2a22008-12-08 18:47:29 +000013@property(readwrite, copy) id object;
Fariborz Jahaniana6f14e12009-11-02 22:45:15 +000014@property(readonly) id object1; // expected-error {{property declaration in continuation class of 'ReadOnly' is to change a 'readonly' property to 'readwrite'}}
Fariborz Jahanianb16308f2008-11-26 20:33:54 +000015@end
Fariborz Jahaniana6f14e12009-11-02 22:45:15 +000016
17@protocol Proto
18 @property (copy) id fee; // expected-note {{property declared here}}
19@end
20
21@protocol Foo<Proto>
22 @property (copy) id foo; // expected-note {{property declared here}}
23@end
24
25@interface Bar <Foo> {
26 id _foo;
27 id _fee;
28}
29@end
30
31@interface Bar ()
32@property (copy) id foo; // expected-error {{property declaration in continuation class of 'Bar' is to change a 'readonly' property to 'readwrite'}}
33@property (copy) id fee; // expected-error {{property declaration in continuation class of 'Bar' is to change a 'readonly' property to 'readwrite'}}
34@end
35
36@implementation Bar
37@synthesize foo = _foo;
38@synthesize fee = _fee;
39@end
40