blob: 53210fc34bf8ddf820ac4812f3d250d293b5d239 [file] [log] [blame]
Fariborz Jahanian22f757b2010-03-22 23:25:52 +00001// RUN: %clang_cc1 -fsyntax-only -verify %s
Fariborz Jahanian24fce282010-11-09 02:16:57 +00002// rdar://7766184
Fariborz Jahanian22f757b2010-03-22 23:25:52 +00003
4@interface Foo @end
5
6@interface Foo ()
7 @property (readonly) int bar;
8@end
9
10void FUNC () {
11 Foo *foo;
John McCall3c3b7f92011-10-25 17:37:35 +000012 foo.bar = 0; // expected-error {{assignment to readonly property}}
Fariborz Jahanian22f757b2010-03-22 23:25:52 +000013}
14
Fariborz Jahanian88f5e9b2010-12-10 23:36:33 +000015// rdar://8747333
16@class NSObject;
17
18@interface rdar8747333 {
19@private
20 NSObject *_bar;
21 NSObject *_baz;
Fariborz Jahanianc78f6842010-12-11 18:39:37 +000022 NSObject *_bam;
Fariborz Jahanian88f5e9b2010-12-10 23:36:33 +000023}
24- (NSObject *)baz;
25@end
26
27@interface rdar8747333 ()
28- (NSObject *)bar;
29@end
30
31@interface rdar8747333 ()
32@property (readwrite, assign) NSObject *bar;
33@property (readwrite, assign) NSObject *baz;
Fariborz Jahanianc78f6842010-12-11 18:39:37 +000034@property (readwrite, assign) NSObject *bam;
35@property (readwrite, assign) NSObject *warn;
Fariborz Jahanian88f5e9b2010-12-10 23:36:33 +000036@end
37
Fariborz Jahanianc78f6842010-12-11 18:39:37 +000038@interface rdar8747333 ()
39- (NSObject *)bam;
40- (NSObject *)warn; // expected-note {{method definition for 'warn' not found}}
41- (void)setWarn : (NSObject *)val; // expected-note {{method definition for 'setWarn:' not found}}
42@end
43
44@implementation rdar8747333 // expected-warning {{incomplete implementation}}
Fariborz Jahanian88f5e9b2010-12-10 23:36:33 +000045@synthesize bar = _bar;
46@synthesize baz = _baz;
Fariborz Jahanianc78f6842010-12-11 18:39:37 +000047@synthesize bam = _bam;
48@dynamic warn;
Fariborz Jahanian88f5e9b2010-12-10 23:36:33 +000049@end
Fariborz Jahanian22f757b2010-03-22 23:25:52 +000050