blob: 022a487ec6d13ff22e38ef9b9213a084079e371c [file] [log] [blame]
Patrick Beardb2f68202012-04-06 18:12:22 +00001// RUN: %clang_cc1 -fsyntax-only -verify -Wno-objc-root-class %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;
Ted Kremenek8b43d2b2013-03-27 00:02:21 +000040- (NSObject *)warn; // expected-note {{method 'warn' declared here}}
41- (void)setWarn : (NSObject *)val; // expected-note {{method 'setWarn:' declared here}}
Fariborz Jahanianc78f6842010-12-11 18:39:37 +000042@end
43
Ted Kremenek8b43d2b2013-03-27 00:02:21 +000044@implementation rdar8747333 // expected-warning {{method definition for 'warn' not found}} \
45 // expected-warning {{method definition for 'setWarn:' not found}}
Fariborz Jahanian88f5e9b2010-12-10 23:36:33 +000046@synthesize bar = _bar;
47@synthesize baz = _baz;
Fariborz Jahanianc78f6842010-12-11 18:39:37 +000048@synthesize bam = _bam;
49@dynamic warn;
Fariborz Jahanian88f5e9b2010-12-10 23:36:33 +000050@end
Fariborz Jahanian22f757b2010-03-22 23:25:52 +000051